График Facebook данных API противоречивые данные приложения IOS - PullRequest
0 голосов
/ 16 августа 2011

В моем приложении я использую фиды пользователей, чтобы получить все сообщения, сделанные моим приложением.Я просто извлекаю все сообщения и сравниваю в каждом сообщении идентификационный номер приложения.

Это нормально работает.Но я нашел ошибку в этом методе.Поскольку узел приложения не всегда согласован.Обычно, когда есть сообщение, которое не сделано приложением, запись в словаре просто говорит (ноль), никаких данных нет.Это не доставляет никаких проблем.

Но есть приложение, которое содержит другие данные в этом узле приложения.У этого есть данные в этом узле, который конкретно говорит (обратите внимание на разницу между () и <>).Но я не могу проверить, есть ли в нем словарь с этим постом.я пробовал следующее:

NSDictionary *resultPost1 =[resultPost objectForKey:@"application"];
            NSLog(@"result%@", [resultPost objectForKey:@"application"]);
            if ([resultPost1 count] != 0) {

Этот дает sigabrt со следующим nslog перед sigabrt:

result (null)

result {id =1957711133323244365557378;name = "app";}

result (добавлено пространство для видимости)

Я также пробовал isEqualtoString:@"< null>" Также безуспешно.

Похоже, иногда это словарьв узле приложения, а иногда и в строке.

У кого-нибудь есть подсказка ???Спасибо !!!

1 Ответ

1 голос
/ 16 августа 2011

Вам придется выполнить некоторую проверку, поскольку у вас нет гарантии, какой тип объекта возвращается из словаря.

NSDictionary *resultPost1 = [resultPost objectForKey:@"application"];
if ([[resultPost1 class] isKindOfClass:[NSDictionary class]) {
  //Treat as a dictionary
}
else if ([[resultPost1 class] isKindOfClass:[NSString class]) {
  //Treat as a string
}
else if ([resultPost1 isEqual:[NSNull null] || !resultPost) {
  //Treat as Null, note the json library Facebook uses might set
  //a json NULL into a NSNull object instead of nil
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...