我正在尝试使用Parse为我的iPhone应用程序保存数据。当我保存静态的东西时,它工作正常。但是,当我尝试设置变量的值然后保存它时,我得到一个错误,说“使用ARC不允许将'int'隐式转换为'id'。”
如何解决此问题,以便将maxScore的值保存到Parse后端?
int maxScore = 500;
//Save round data to parse
PFObject *roundScore = [PFObject objectWithClassName:@"UserCoor"];
roundScore[@"UserLat"] = maxScore;
[roundScore saveInBackground];
答案 0 :(得分:1)
正如错误所说,它需要一个指向Objective-C对象的指针,而不是一个对象,你需要传入一个基本类型(int)。您可能想要使用
NSNumber *maxScore = [NSNumber numberWithInt:500];
答案 1 :(得分:1)
问题在于您无法将int
等基本类型传递给roundScore[@"UserLat"] = maxScore
。这个带键的下标符号只是对setObject:(id)obj forKeyedSubscript:(id<NSCopying>)key
的调用,正如您所看到的那样,将id
类型的对象作为obj参数。
您可以使用文字NSNumber
轻松地将您的int值插入@()
(非原始类型)。像这样:
roundScore[@"UserLat"] = @(maxScore);