8

オブジェクトを NSMutableArray に追加したい:

NSLog(@"Object text: %@", object.text);
NSLog(@"Object: %@", object);
[appdelegate.objects addObject:object];
NSLog(@"Objects array size: %i", [appdelegate.objects count]);

これは出力です:

Object text: This is the text
Object: <Object: 0x6e762c0>
Objects array size: 0

どうすればこれが可能になるのでしょうか。次の行にオブジェクトを追加しますが、まだ空です。例外が発生するため、is NSMutableArraynotです。nil

誰でも推測できますか?

4

2 に答える 2

12

の場合、例外は発生しませんnilnilオブジェクトが通常そのメッセージに応答する場合は、オブジェクトにメッセージを送ることができます。この場合、0 を取得します。配列を割り当てていないと思います。これを行っていることを確認してください:

array = [[NSMutableArray alloc] init];

デバッグのヒントとして、オブジェクトの状態が不明で、オブジェクトが実際に存在し、使用する準備ができていることを確認したいassert(appdelegate.objects);場合は、配列が nil の場合、コードはこの行で実行を停止します。この行で停止しない場合は、オブジェクトがメモリ内に存在することがわかります。

于 2012-09-05T13:40:49.403 に答える
0

あなたの NSMutableArray は確かにほぼ確実に null です。nilObjC でメッセージを送信してもノーオペレーションであり、0 やnilなどの戻り値でご覧のように動作するため、例外は発生しません。

それもログに記録して、再確認してください。

于 2012-09-05T13:40:25.873 に答える