tchike
tchike

Reputation: 164

Core Data Issue - Unable to store NSNumber

I am trying to use Core Data in my application. I want to store an attribute "totalKM".

to store my attribute I use these lines:

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];
int number = 4;
[event setTotalKM:[NSNumber numberWithDouble:number]];

to read my attribute I use these:

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];
NSNumber *number = [event totalKM];

My attribute "totalKM" is always default value, O. And I have no exception. Am i missing something?

Thanks.

Upvotes: 0

Views: 1329

Answers (1)

agassi_yzh
agassi_yzh

Reputation: 132

insertNewObjectForEntityForNamethis method use to put model to context.

this is a new object.

the right way is:

Set new one

Model *event = (Model *)[NSEntityDescription insertNewObjectForEntityForName:@"Model" inManagedObjectContext:managedObjectContext];

int number = 4;

[event setTotalKM:[NSNumber numberWithDouble:number]];

//save change if need
NSError *error = nil;

if (![self.manageObjectContext save:&error]) {
    NIDERROR(@"save managedContext error :%@",error);
}

fetch object progress

When you need to get a model form coredate.u need 2 fetch use fetch

like this dome

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Board"
                                    inManagedObjectContext:self.manageObjectContext]];
//set fetch conditions
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"board_id == %@", aBoardID];
[fetchRequest setPredicate:predicate];

NSError *error = nil;

NSArray *results = [self.manageObjectContext executeFetchRequest:fetchRequest error:&error];

if (error) {
    NIDERROR(@"fetch board error.\n board id: %@ \n error:%@", aBoardID, error);
    return nil;
}

Model *model = results[0];

NSLog(@"%@",model.totalKM)

Upvotes: 2

Related Questions