2016-03-20 54 views
0

我有一個很大的麻煩與bugg,在某些情況下給「initWithObjects:forKeys:count:」:嘗試插入nil對象從對象[6]'「錯誤信息。它只發生在每三分之一的審判中,而在其他情況下它可以正常工作。我沒有調試在某些情況下發生的錯誤,所以這就是爲什麼我要求幫助。可能很難找到解決方案,但我很樂意接受一些建議,至少從哪裏開始尋找問題以及如何調試?Bugg NSDictonary有時會與「試圖插入零」響應崩潰

基本上我的應用程序有一個方法,將NSDictonary列表與對象發送到服務器。在某些情況下,如果用戶沒有爲該列表選擇任何內容,我想刪除一個對象。問題在於服務器無法像發送帶有空白空間的對象那樣死亡。所以我做了一種不好看的工作。基本上,IBaction會檢查Object是否包含nil。如果它包含零,它將重定向到一個非常類似的NSDictonary而不包含無對象的零。它在某些情況下是炒作的,但它似乎有時不識別包含零的對象。

下面是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

那麼我可以很容易地用其他東西替換零,但那不會解決真正的問題。我的方法需要知道用戶是否已添加anyhitng到該對象。如果他們沒有,我不需要發送該對象到服務器。問題是,當我詢問字符串包含零的時候,它有時似乎錯過了它,並將其發送給NSDictonary。發送包含nil的對象時會創建該錯誤。如果我用其他東西代替它,那麼就像一個白色空間,服務器反而會給出錯誤。 –

0

要跟進gnashers729答案。對我來說問題不是零,而是我的無爲無法識別對象包含的事實。

這裏例如我試圖用字符串替換零來重新識別。我遇到了同樣的問題,我的方法在某些情況下會識別字符串,有時候不會。

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