Как я могу получить свойства из NSDictionary?
У меня есть веб-сервис, который возвращает данные в мое клиентское приложение в формате JSON. Я использую TouchJson, чтобы затем десериализовать эти данные в NSDictionary. Отлично. Словарь содержит ключ, "results", а результаты содержат 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;
}
Я не могу определить тип этого объекта. Как я могу получить свойства и значения от этого объекта?
Спасибо!
2 ответа
Чтобы получить содержание NSDictionary
Вы должны предоставить ключ для значения, которое вы хотите получить. То есть:
NSString *notes = [[resultsArray objectAtIndex:0] valueForKey:@"notes"];
Чтобы проверить, является ли объект экземпляром класса 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"
,