无法将对象添加到NSMutableArray

所以我有以下代码:

NSMutableArray *array array=[[NSMutableArray alloc] init]; [array addObject: object1]; [array addObject: object2]; NSLog(@"%@",array); 

当我在连接到我的Mac的iPod上使用应用程序时,NSLog只写入null,我没有得到object1 object2。 我究竟做错了什么?

PS:数组是属性.h @property (nonatomic, retain) NSMutableArray *array;

应该是:

 array=[[NSMutableArray alloc] init]; 

你的[[NSMutableArray array] init]应该是[[NSMutableArray alloc] init] 。 这将工作,但它不是一个适当的方式来初始化对象。 你没有发布你的array ,我假设你宣布它是错误的。 它应该是一个指向NSMutableArray对象的指针。 这是一个工作代码:

 NSMutableArray *array=[[NSMutableArray alloc] init]; [array addObject: @"a"]; [array addObject: @"b"]; NSLog(@"%@",array); 

你根本没有初始化你的数组,这就是为什么它不返回任何东西。

 array=[[NSMutableArray alloc] init]; [array addObject: object1]; [array addObject: object2]; NSLog(@" Array is:%@",array); 

请记住随后发布(除非您使用的是ARC)

你可以尝试在一行。

  NSMutableArray *array = [[NSMutableArray alloc] arrayWithObjects:@"a", @"b", nil]; NSLog(@"%@",array); 

你声明数组作为一个属性。 其对应的iVar被初始化为零。 所以在你的init方法中,你必须初始化它:

假设你使用过

 @synthesize array; 

在你的init方法中

 if (self) { //other init stuff array = [[NSMutableArray array] retain]; } 

然后当添加东西

 [self.array addObject: object]; 

还要注意,他把你放在那里的对象必须正确初始化,而不是零。 所以尝试logging这一点

 NSLog("the object %@ was put in array. Array contains: %@",object, self.array); 

在dealloc中,释放你的数组!