在 NSInteger 的情况下为键设置值
Set value for key in case of NSInteger
我正在尝试使用 setValue:forKey:
在核心数据中设置一个值,但它抛出一个错误:
(Use of undeclared identifier: 'newID'}
尝试保存 NSInteger 时。谁能建议正确的语法?
NSInteger newID = lastID+1;
[record setValue:newID forKey:@"localid"];//error
当我尝试 setObject
而不是 setValue
时遇到了类似的错误
您只能设置NSObject。最简单的方法是
record [@"localid"] = @(newID);
并且您应该避免使用 setValue:forKey: 和 valueForKey: 并使用 setObject: 和 objectForKey: 或现代语法 - 除非您有充分的理由需要 "value" 方法。
NSInteger
是原始类型,不是对象。你应该像这样把它装箱成 NSNumber
:
NSInteger newID = lastID+1;
[record setValue:@(newID) forKey:@"localid"];
你可以像这样转换回来:
NSInteger recordId = [((NSNumber*)[record valueForKey:@"localid"]) integerValue]
我正在尝试使用 setValue:forKey:
在核心数据中设置一个值,但它抛出一个错误:
(Use of undeclared identifier: 'newID'}
尝试保存 NSInteger 时。谁能建议正确的语法?
NSInteger newID = lastID+1;
[record setValue:newID forKey:@"localid"];//error
当我尝试 setObject
而不是 setValue
您只能设置NSObject。最简单的方法是
record [@"localid"] = @(newID);
并且您应该避免使用 setValue:forKey: 和 valueForKey: 并使用 setObject: 和 objectForKey: 或现代语法 - 除非您有充分的理由需要 "value" 方法。
NSInteger
是原始类型,不是对象。你应该像这样把它装箱成 NSNumber
:
NSInteger newID = lastID+1;
[record setValue:@(newID) forKey:@"localid"];
你可以像这样转换回来:
NSInteger recordId = [((NSNumber*)[record valueForKey:@"localid"]) integerValue]