【问题标题】:Bugg with NSDictonary sometimes crashes with "Trying to insert nil" response带有 NSDictonary 的 Bugg 有时会因“尝试插入零”响应而崩溃
【发布时间】:2016-03-20 14:18:59
【问题描述】:

我遇到了一个错误,它在某些情况下会给出“initWithObjects:forKeys:count:]:尝试从对象[6]'中插入 nil 对象”错误消息。它仅在每三次试验左右发生一次,在其他情况下它工作正常。我还没有调试在某些情况下发生的错误,所以这就是我寻求帮助的原因。可能很难找到解决方案,但我很乐意收到一些建议,至少从哪里开始寻找问题以及如何调试它?

基本上,我的应用程序有一个方法可以将带有对象的 NSDictonary 列表发送到服务器。在某些情况下,如果用户没有为该列表选择任何内容,我想删除一个对象。问题是服务器死了不喜欢发送一个空白的对象。所以我做了一个看起来不太好看的工作。基本上,IBaction 检查 Object 是否包含 nil。如果它包含 nil,它会重定向到一个非常相似的 NSDictonary,但没有包含 Nil 的 Object。在某些情况下它可以正常工作,但有时它似乎无法识别包含 nil 的对象。

这是 Inaction 中重定向代码的代码。我还没有创建向对象插入任何内容的方法:@"DefaultCreateImageID" 但据我所知,它应该始终为 nil。

 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];

    }

谢谢!

【问题讨论】:

    标签: iphone xcode debugging nsdictionary


    【解决方案1】:

    如果您收到错误“尝试插入 nil”,则您尝试添加到字典中的对象之一是 nil。解决方案:不要那样做。

    弄清楚为什么您尝试添加到字典中的某些项目是 nil。然后弄清楚你想在这种情况下做什么。

    【讨论】:

    • 好吧,我可以轻松地将 nil 替换为其他东西,但这并不能解决真正的问题。我的方法需要知道用户是否向该对象添加了 anyhitng。如果他们没有,我不需要将该对象发送到服务器。问题是,当我询问字符串包含 nil 的内容时,它有时似乎会错过它并仍然将其发送到 NSDictonary。发送包含 nil 的对象时会创建错误。如果我用其他东西替换它,那么就像一个空白空间,服务器仍然会给出错误。
    【解决方案2】:

    跟进 gnashers729 的回答。对我来说问题不是零,而是我的 Inaction 无法重新识别对象包含的内容。

    例如,我尝试用一​​个字符串替换 nil 以重新识别。我遇到了同样的问题,我的方法在某些情况下可以识别字符串,而在某些情况下却不能。

    NSString *Imagestuff= [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"];
        if ( [[NSUserDefaults standardUserDefaults] objectForKey:@"DefaultcreateImageID"] !=  ( NSString *) @"noImage"  ){
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 2012-05-10
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 1970-01-01
      • 2018-06-25
      相关资源
      最近更新 更多