3

私はかなり基本的な間違いを犯していると思いますが、を使用していNSMutableArrayますが、これはどういうわけかオブジェクトを追加せず、そのまま送信しています。私はプロパティを持っています(そして合成します)

@property (nonatomic, strong) NSMutableArray *kpiStorage;

その後:

ExampleObject *obj1 = [[ExampleObject alloc] init];
[kpiStorage addObject:obj1];
ExampleObject *obj2 =  [[ExampleObject alloc] init];
[kpiStorage addObject:obj2];

NSLog(@"kpistorage has:%@", [kpiStorage count]);

コンソールでは常に (null) が返されます。私は何を誤解していますか?

4

3 に答える 3

14

kpiStorageにメモリを割り当てたことを確認してください。

self.kpiStorage = [[NSMutableArray alloc] init];
于 2013-02-23T16:47:22.217 に答える
4

NSMutableArray に割り当てられたメモリを忘れていることに加えて、NSLog のフォーマットも間違っています。アプリを実行するとクラッシュします。以下の変更が必要です

追加する必要があります

self.kpiStorage = [[NSMutableArray alloc] init];

NSLogを次のように変更します

NSLog(@"kpistorage has:%d", [self.kpiStorage count]);
于 2013-02-23T16:51:23.473 に答える
0

ARC を使用していない場合は、プロジェクトでメモリ リークを作成しないようにしてください。より良い方法は、このように割り当てることです

NSMutableArray *array = [[NSMutableArray alloc] init];
self.kpiStorage = array;
[array release];

直接しないことを習慣にする

self.kpiStorage = [[NSMutableArray alloc] init];

この場合、プロパティの保持カウントは 2 ずつ増加します。さらに読むために、プロパティを保持するときのメモリ リークを調べることができます。

于 2013-02-23T18:47:45.393 に答える