ice*_*omo 11 objective-c nsmutablearray ios
我有一个自定义对象,我创建了3个属性.我创建对象并将值分配给这些属性.之后我把那个物体放进去了NSMutable Array.我知道我可以用:
for (id obj in personArray)
{
NSLog(@"obj: %@", obj);
}
NSLog(@"%@", personArray);
Run Code Online (Sandbox Code Playgroud)
告诉我我的数组中有哪些对象.但是我希望更深入一些,我希望能够看到每个对象的属性.我只是不确定如何定位它们.
这是我正在使用的代码:Person是我的自定义对象.
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);
Run Code Online (Sandbox Code Playgroud)
Ale*_*Cio 14
您必须description在Person类中使用该方法
-(NSString *)description{
return @"FirstName: %@, LastName: %@, E-mail: %@",
_firstName, _lastName, _email;
}
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以始终打印您所拥有的对象,NSArray但不会在内存描述中返回您在特定对象的描述方法中之前定义的值.
如果您只想NSArray使用使用占位符中的元素执行此操作:
NSLog(@"FirstName: %@, LastName: %@, E-mail: %@",
obj.firstname, obj.lastname, obj.email);
Run Code Online (Sandbox Code Playgroud)
两者之间没有太大区别,但它更有用,因为一旦创建了描述方法,就不必重写它,只需要打印对象即可.
在所有类中使用描述方法都有一种简单的方法.
使用ICHObjectPrinter:
NSLog(@"Object description is %@",[ICHObjectPrinter descriptionForObject:person]);
Run Code Online (Sandbox Code Playgroud)
https://github.com/arundevma/ICHObjectPrinter