0

1 つ以上のオブジェクトがあるデータベース ディクショナリから取得していますNSNull。将来、アプリがクラッシュするので、彼と一緒に仕事をすることはできません。NSNullディクショナリオブジェクト、メソッドから削除する多くの方法を試しましたremoveObjectForKeyが、これを実行しようとすると、理由の配列であるエラーが発生します:

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

removeObjectAtIndexそして、この辞書のように配列をメソッドでこれらのオブジェクトを削除することはできません。これを行う方法は、これらのオブジェクトをタイプごとに削除することだけを考えました。NSNullタイプに一致する辞書からオブジェクトを削除することは可能ですか? それとも、この問題に対する別の解決策がありますか?

助けてくれてありがとう!

4

3 に答える 3

0

あなたは言う:

そして、この辞書のように配列「removeObjectAtIndex」を使用してこれらのオブジェクトを削除することはできません。

残念ながらあなたのエラー:

[__ NSArrayM removeObjectForKey:]: 認識されないセレクター

あなたに同意しません。配列があります。使用できない理由removeObjectAtIndexは、不変であるためです。

于 2016-11-22T00:12:07.087 に答える
0

配列からキーを削除しています

配列からキーを削除できないことに注意してください。このエラーよりも明らかです。

removeObjectAtIndex に

配列が変更可能であることを確認してください。次に、removeObjectAtIndex を使用できます。

それがうまくいくことを願っています。

于 2016-11-22T05:34:54.493 に答える
0

このループ (この投稿から適応) は、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];
  }
}
于 2016-11-22T00:05:08.600 に答える