NSInvalidArgumentException - '不能在PFObject上使用nil作为键或值。使用NSNull作为值

时间:2014-09-22 03:08:03

标签: ios string push-notification installation parse-platform

在我的视图中加载我正在尝试设置从用户到安装的指针。这是我用户类的一部分。 enter image description here

然后我有这段代码来检查我是否设置了指针

PFInstallation *currentInstalation = [PFInstallation currentInstallation];

NSString *installationObjectId = currentInstalation.objectId;

if (![currentUser[@"installationString"] isEqual:installationObjectId]) {
     NSLog(@"has not been set");
     //******************
     //THIS LINE THROWS THE ERROR
     //********************
     currentUser[@"installationString"] = installationObjectId;
}

它会出现此错误*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't use nil for keys or values on PFObject. Use NSNull for values.'

我没有设置为nil,这就是为什么我很困惑我只是想将setupString键设置为字符串

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

这是使用带有Parse对象的括号表示法的问题。不要使用currentUser[@"installationString"],而应使用以下内容:

[currentUser objectForKey:@"installationString"]
[currentUser setObject:installationObjectId forKey:@"installationString"];

此外,您还需要添加以下代码。目前的安装尚未保存。我建议在AppDelegate中执行此操作。

[currentInstallation saveInBackground];

答案 1 :(得分:0)

首先检查安装ID是否为null

if (installationString == null) {
}
else {
    //save it like this
    [currentInstallation saveInBackground];
}