Facebook图api数据不一致应用数据IOS



在我的应用程序中,我使用用户提要来检索我的应用程序所做的所有帖子。我只是检索所有帖子,并比较每个帖子的应用程序的id号。

这个可以工作。但是我在这个方法中发现了一个bug。因为应用程序节点并不总是一致的。通常情况下,当有一个帖子不是由一个应用程序完成,在字典中的条目只是说(null),没有任何数据。这没有任何问题。

但是有一个应用程序在这个应用程序节点中有其他数据。这个节点中的数据明确表示(注意()和<>之间的区别)。但是我似乎没有办法检查那篇文章的字典里是否有。我尝试了以下方法:

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

给出一个符号,符号之前有以下nslog:

结果(null)

结果{Id = 1957711133323244365557378;Name = "app";}

result(为可见性添加空间)

我也试过isEqualtoString:@"< null>"也没有成功。

看起来有时,它们是应用程序节点中的字典,有时是字符串。

有人知道吗??谢谢! !

您必须做一些检查,因为您无法保证从字典返回的对象类型。

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
}

最新更新