我有一个自定义对象,我创建与它定义的3个属性.我创建对象并将值分配给这些属性.之后,我将该对象放入一个NSMutable数组.我知道我可以使用:
for (id obj in personArray) { NSLog(@"obj: %@",obj); } NSLog(@"%@",personArray);
告诉我我的阵列中有什么样的对象?但是我想要更深一层,我希望能够看到每个对象的属性是什么.我只是不知道如何瞄准他们.
personObject = [[Person alloc]init]; [personObject setFirstName:firstName.text]; [personObject setLastName:lastName.text]; [personObject setEmail:emailAddress.text]; // add the person object to the array // the array was alloc and init in a method above this code. [personArray addObject:personObject]; for (id obj in personArray) { NSLog(@"obj: %@",obj); } NSLog(@"%@",personArray);
解决方法
您必须在Person类中使用描述方法
-(NSString *)description{ return @"FirstName: %@,LastName: %@,E-mail: %@",_firstName,_lastName,_email; }
这样,您可以始终打印您在NSArray内部的对象,而不是内存描述,您将在特定对象的描述方法中返回您之前定义的值.
如果您只想使用NSArray中的元素来使用占位符:
NSLog(@"FirstName: %@,obj.firstname,obj.lastname,obj.email);
没有什么区别,但它更有用,因为一旦你创建了描述方法,你就不需要重写了,你只需要打印对象.