NSMutableArray不添加对象

我想,我正在做一个非常基本的错误,但我正在使用一个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)。 我误解了什么?

确保你为kpiStorage分配了内存。

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

忘记为你的NSMutableArray分配内存,你的NSLog格式也是错误的。 运行它时,你的应用程序会崩溃。 需要进行以下更改

您将需要添加

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

并将您的NSLog更改为以下

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

如果您没有使用ARC,请确保您不要在您的项目中创build内存泄漏。 所以更好的办法就是这样分配

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

使其成为不直接做的习惯

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

在这种情况下,您的财产的保留计数增加2.为进一步阅读,您可以在保留财产时保持内存泄漏