私は文字列でplistから初期化しているNSMutableArrayを持っています。ObjectAtIndexを取り除くと警告に応答しない可能性があります
しかし、その配列のobjectAtIndexまたはremoveObjectAtIndexを実行しようとすると、「NSMutableArrayが....に応答しない可能性があります」という警告が表示され、実行時にも失敗します。
どうすればいいですか?
THXは
私は文字列でplistから初期化しているNSMutableArrayを持っています。ObjectAtIndexを取り除くと警告に応答しない可能性があります
しかし、その配列のobjectAtIndexまたはremoveObjectAtIndexを実行しようとすると、「NSMutableArrayが....に応答しない可能性があります」という警告が表示され、実行時にも失敗します。
どうすればいいですか?
THXは
これは、オブジェクトが実際にNSMutableArray
ではありません、あなたはメソッド名をスペルミス、または(可能性が高い)のいずれかのように見えます。
タイプを確認する方法の1つです。これは、シミュレータで動作しますが、それはあなたの問題を解決するために役立つことができます:それはその行(:Xcodeでコマンド+ Shift + Rのショートカット)になったとき
#import <objc/runtime.h>
// Later, when you've got the object x that you want to be an NSMutableArray:
NSLog("The type of x is %s", class_getName([x class]));
アプリのデバッグ出力を確認してください。
また、私はすでにこれを知っていると思いますが、objective-Cのメソッド名は大文字と小文字が区別され、引数があると最後にコロンが含まれています。だから、有効な呼び出しは次のようになります。
それは言及する必要はないようだが、私はあなたが間違いか何かで資本Oを使用念のため、私は私の答えで、より包括的だろうと思った場合id gottenObject = [x objectAtIndex:0];
申し訳ありません。
NSMutableArrayをNSArray変数に格納すると、コンパイラは変数型に基づいて静的型定義を使用し、そのオブジェクトがNSArrayであり、したがって不変であるとみなします。したがって、NSMutableArray変数にNSArrayを格納しようとしている可能性があります。実行時にもエラーが発生します。文脈なしで言うのは非常に難しいですが、それは探求すべきことです。
警告が表示されているコードの正確な行(およびこれに先行する文脈)を記入してください。 –