无法将对象添加到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中,释放你的数组!