Search code examples
iosobjective-ccore-datasetvalue

Set value for key in case of NSInteger


I am trying to set a value in core data using setValue:forKey: but it is throwing an error:

(Use of undeclared identifier: 'newID'}

when trying to save an NSInteger. Can anyone suggest the correct syntax?

 NSInteger newID = lastID+1;
 [record setValue:newID forKey:@"localid"];//error 

Got similar error when I tried setObject instead of setValue


Solution

  • NSInteger is a primitive type, not an object. You should box it into an NSNumber like this:

    NSInteger newID = lastID+1;
     [record setValue:@(newID) forKey:@"localid"];
    

    And you can convert back like this:

    NSInteger recordId = [((NSNumber*)[record valueForKey:@"localid"]) integerValue]