我遇到了很多麻烦,在某些情况下会给出“initWithObjects:forKeys:count:]:尝试从对象插入nil对象[6]”“错误消息。它只发生在每三次试验中,而在其他情况下它运行正常。我没有调试在某些情况下发生的错误,所以这就是为什么我要求帮助。可能很难找到解决方案,但我很乐意接受一些建议,至少从哪里开始寻找问题以及如何调试它?
基本上我的应用程序有一个方法,它将带有对象的NSDictonary列表发送到服务器。在某些情况下,如果用户没有为该列表选择任何内容,我想删除一个对象。问题是服务器死了不像发送一个空的空间。所以我做了一个不好看的工作。基本上,IBaction检查Object是否包含nil。如果它包含nil,它会重定向到一个非常相似的NSDictonary,而Object不包含Nil。它在某些情况下会发生,但似乎它有时候不会识别包含nil的对象。
这是Inaction中重定向代码的代码。我还没有创建一个向对象插入任何东西的方法:@“DefaultCreateImageID”但据我所知它应该总是为零。
NSString *Imagestuff= [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"];
if ( [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"] != ( NSString *) [NSNull null] ){
DataHandler *handler = [DataHandler sharedDatahandler];
handler.authenticateUserDelegate = self;
[handler createActivityNoImage];
NSLog(Imagestuff);
}
else
{
DataHandler *handler = [DataHandler sharedDatahandler];
handler.authenticateUserDelegate = self;
[handler createActivity];
}
谢谢!
答案 0 :(得分:0)
如果您收到错误"尝试插入nil"那么你想要添加到字典中的一个对象是nil。解决方案:不要这样做。
弄清楚为什么你要添加到字典中的某些项目是nil。然后找出你想要在这种情况下做什么。
答案 1 :(得分:0)
跟进gnashers729的回答。对我来说问题不是零,而是我的Inaction无法重新识别对象包含的内容。
这里举例说明我尝试用字符串替换nil来重新识别。我遇到了同样的问题,我的方法在某些情况下识别字符串,在某些情况下不识别。
NSString *Imagestuff= [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"];
if ( [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"] != ( NSString *) @"noImage" ){