I have a custom object that I create with 3 properties defined in it. I create the object and assign the values to those properties. After that I put that object into an NSMutable Array
. I know I can use :
for (id obj in personArray)
{
NSLog(@"obj: %@", obj);
}
NSLog(@"%@", personArray);
To tell me what kind of objects are in my array. But I want to go a level deeper, I want to be able to see what the properties are for each of those objects. I'm just not sure how to target them.
Here is the code and I am using: Person is my custom object.
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);
To print all the properties of one object, use followed codes:
You have to use the
description
method inside your Person classThis way you can print always the object you have inside your
NSArray
but instead of the memory description you'll get returned the values you've defined before in your description method of the specific object.If you just want to do this with the element from the
NSArray
use placeholders:There is not much difference between, but its more useful because you don't have to rewrite it once you have created your description method, you just have to print the object.
There is a simple way than using description method in all classes.
Use ICHObjectPrinter:
https://github.com/arundevma/ICHObjectPrinter
For a slightly more advanced solution check out this answer https://stackoverflow.com/a/2304797/519280. You can add this code to a base class that your Person object extends, and from then on you can use the autoDescribe function to automatically print out all the properties of your object without having to go through the process of manually listing all the properties in the describe method.