在我的应用程序中,我使用用户提要来检索我的应用程序所做的所有帖子。我只是检索所有帖子,并比较每个帖子的应用程序的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
}