0

我有一个 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;
}

我无法确定这个对象是什么类型。如何从该对象获取属性和值?

谢谢!

4

2 回答 2

3

要获取 a 的内容,NSDictionary您必须提供要检索的值的键。IE:

NSString *notes = [[resultsArray objectAtIndex:0] valueForKey:@"notes"];
于 2011-06-30T23:41:39.677 回答
2

要测试 object 是否是 class 的实例a,请使用以下之一:

[yourObject isKindOfClass:[a class]]

[yourObject isMemberOfClass:[a class]]

要获取对象的类名,您可以使用以下之一:

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

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

对于 an NSDictionary,您可以使用-allKeys返回一个NSArray字典键。这也会让你知道有多少(通过count数组的)。一旦你知道类型,你可以打电话

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

哪里keyString是 , 等之一@"creationdate"@"notes"但是,如果该类不是 的子类NSObject,则改为使用:

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

例如,您可能需要为keystringequal to执行此操作@"id"

于 2011-06-30T23:29:45.513 回答