ios – 如何打印(NSLog)添加到NSMutableArray的自定义对象的属性

我有一个自定义对象,我创建与它定义的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);

没有什么区别,但它更有用,因为一旦你创建了描述方法,你就不需要重写了,你只需要打印对象.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...