2016-11-21 13 views
0

1つ以上のオブジェクトがあるデータベース辞書から取得していますNSNull。将来、私はアプリのクラッシュのように彼と一緒に働くことは一切できません。私は辞書からNSNullオブジェクト、メソッドremoveObjectForKeyが、これを行うに任意の試みを削除する多くの方法を試してみましたI取得理由の配列ですエラー:1つ以上のオブジェクトがあるデータベース辞書から取得しています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

あなたはremoveObjectAtIndex

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

のためにも、アレイ

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

からキーを削除しているが、それはあなたのために働く願っています。

関連する問題