2016-11-21 24 views
0

我從數據庫字典中獲得一個或多個對象NSNull。將來,我不能以任何方式與應用程序崩潰一起與他一起工作。我試過很多方法可以從字典中刪除NSNull對象,方法removeObjectForKey但任何試圖做到這一點,我得到一個錯誤,是理性的數組:我從數據庫字典中獲得一個或多個對象NSNull

- [__ NSArrayM removeObjectForKey:]: unrecognized selector sent to an instance 

我不能用方法數組中刪除這些對象removeObjectAtIndex作爲這本詞典。我只想到如何做到這一點是通過類型去除這些對象。是否可以這樣做,從字典中刪除匹配NSNull類型的對象?或者也許有另一個解決這個問題的方法?

謝謝你的幫助!

+2

發佈您的源'詞典','數組',或任何可能的內容。 – Frankie

+0

'NSArrayM'顯然是一個可變數組('NSMutableArray'),而不是字典。數組是基於索引的,字典是基於關鍵字的。 – vadian

回答

0

這個循環(改編自this post)應該可以幫助您用您選擇的字符串(原諒錯別字,我不在我的電腦前)替換NSnull條目。

for(NSString *key in yourDictionary) { 
    id dictionaryEntry= [yourDictionary objectForKey:key]; 
    if(!dictionaryEntry) { 
    [newDictionary setObject:@"string" forKey:key]; 
    } else { 
    [newDictionary setObject:[yourDictionary objectForKey:key] forKey:key]; 
    } 
} 
0

你說:

And I can not remove these objects by method the array "removeObjectAtIndex" as this dictionary.

很遺憾,您的錯誤:

[__ NSArrayM removeObjectForKey:]: unrecognized selector

不同意你的看法。你有一個數組。而你不能使用removeObjectAtIndex的原因是因爲它是不可變的。

+0

問題在於我保存在字典中的數據庫對象中,並且我返回了字典。但是當得到nsnull然後返回一個數組 –

+0

然後,這聽起來像一個不同的問題。上述問題的解決方案是,您正嘗試調用數組上的字典方法。 – Frankie

0

您從一個陣列

Note down that you cannot remove a key from an array. Than this error is obvious.

而且刪除鍵removeObjectAtIndex

Make sure your array should be mutable. Then you can use removeObjectAtIndex.

希望它爲你工作。

相關問題