开发者

How do I get properties out of NSDictionary?

I have a webservice that returns data to my client application in JSON. I am using TouchJson to then deserialize this data into a NSDictionary. Great. The dictionary contains a key, "results" and results contains an NSArray of objects.

These objects look like this when printed to log开发者_Go百科 i.e

NSLog(@"Results Contents: %@",[resultsArray objectAtIndex:0 ]);

Outputs:

Results Contents: {
    creationdate = "2011-06-29 22:03:24";        
    id = 1;
    notes = "This is a test item";
    title = "Test Item";
    "users_id" = 1;
}

I can't determine what type this object is. How do I get the properties and values from this object?

Thanks!


To get the content of a NSDictionary you have to supply the key for the value that you want to retrieve. I.e:

NSString *notes = [[resultsArray objectAtIndex:0] valueForKey:@"notes"];


To test if object is an instance of class a, use one of these:

[yourObject isKindOfClass:[a class]]

[yourObject isMemberOfClass:[a class]]

To get object's class name you can use one of these:

const char* className = class_getName([yourObject class]);

NSString *className = NSStringFromClass([yourObject class]); 

For an NSDictionary, you can use -allKeys to return an NSArray of dictionary keys. This will also let you know how many there are (by taking the count of the array). Once you know the type, you can call

[[resultsArray objectAtIndex:0] objectForKey:keyString];

where keyString is one of @"creationdate", @"notes", etc. However, if the class is not a subclass of NSObject, then instead use:

[[resultsArray objectAtIndex:0] valueForKey:keyString];

for example, you probably need to do this for keystring equal to @"id".

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜