我有一个web服务,它以JSON的形式将数据返回给我的客户端应用程序。我使用TouchJson然后将此数据反序列化为NSDictionary。大。字典包含一个键,“结果”,结果包含一个NSArray对象。
打印到日志时,这些对象看起来像这样
NSLog(@"Results Contents: %@",[resultsArray objectAtIndex:0 ]);
输出:
Results Contents: {
creationdate = "2011-06-29 22:03:24";
id = 1;
notes = "This is a test item";
title = "Test Item";
"users_id" = 1;
}
我无法确定此对象的类型。如何从此对象获取属性和值?
谢谢!
答案 0 :(得分:3)
要获取NSDictionary
的内容,您必须提供要检索的值的键。即:
NSString *notes = [[resultsArray objectAtIndex:0] valueForKey:@"notes"];
答案 1 :(得分:2)
要测试object是否是类a
的实例,请使用以下方法之一:
[yourObject isKindOfClass:[a class]]
[yourObject isMemberOfClass:[a class]]
要获取对象的类名,您可以使用以下方法之一:
const char* className = class_getName([yourObject class]);
NSString *className = NSStringFromClass([yourObject class]);
对于NSDictionary
,您可以使用-allKeys
返回NSArray
字典键。这也会让你知道有多少(通过获取数组的count
)。一旦知道了类型,就可以打电话给
[[resultsArray objectAtIndex:0] objectForKey:keyString];
其中keyString
是@"creationdate"
,@"notes"
等之一。但是,如果该类不是NSObject
的子类,则改为使用:
[[resultsArray objectAtIndex:0] valueForKey:keyString];
例如,您可能需要在keystring
等于@"id"
的情况下执行此操作。