我正在开发一个推特应用并试图实现推文位置。我想要的只是显示国家/地区的名称,如果推文有位置,则显示在地图上。但无论我尝试过什么,它总是显示第一条推文的国家,或者如果它为null,应用程序崩溃。我不明白我做错了什么。有人可以帮忙吗?谢谢! 这是我的代码:
// LOCATION
for (NSDictionary *dic in self.dataSource)
{
NSString *str = [dic valueForKeyPath:@"place.name"];
if(str)
{
cell.button.hidden = NO;
cell.location.text = [dic valueForKeyPath:@"place.full_name"];
self.coordinates = [dic valueForKeyPath:@"geo.coordinates"];
break;
} else {
cell.button.hidden = YES;
cell.location.hidden = YES;
break;
}
}
这是NSLog输出:
2013-08-20 00:04:42.269 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.269 TwitterApplication[10011:c07] Downtown
2013-08-20 00:04:42.269 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.270 TwitterApplication[10011:c07] Moscow
2013-08-20 00:04:42.270 TwitterApplication[10011:c07] Брянск
2013-08-20 00:04:42.270 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.271 TwitterApplication[10011:c07] Брянск
2013-08-20 00:04:42.271 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.271 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.272 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.272 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.272 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.273 TwitterApplication[10011:c07] <null>
2013-08-20 00:04:42.273 TwitterApplication[10011:c07] <null>
答案 0 :(得分:0)
为什么要检查@“place.name”的值,然后使用@“place.full_name”?也许这就是问题所在。
我认为在使用它之前你必须检查@“geo.coordinates”值。
尝试将if语句更改为if(str && str.lengh)
并更改NSString *str = [dic valueForKeyPath:@"place.name"];
到NSString *str = [[dic valueForKeyPath:@"place.name"] lastObject];
,因为valueForKeyPath返回一个数组。