我在使用BZForursquare将附近的场地变成UITableView时真的被困住了。
BZFoursquare:https://github.com/baztokyo/foursquare-ios-api
我在requestDidFinishLoading Delegate Method中获取了Requestresult。在此方法中,请求对象包含多个NSDictionaries,并且一个Dictionary位于request.response中。此响应字典包含一个带有key =“venues”的条目和一个值为JSON对象的条目。当我将这个值Object放入字典时,类型似乎不是字典而是NSCFArray:
#pragma mark BZFoursquareRequestDelegate
- (void)requestDidFinishLoading:(BZFoursquareRequest *)request {
self.meta = request.meta;
self.notifications = request.notifications;
self.response = [request.response objectForKey:@"venues"];
self.request = nil;
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
NSLog(@"%@",[self.response objectForKey:@"name"]);
}
我假设这是因为NSLog Line给出了以下错误:
- [__ NSCFArray objectForKey:]:无法识别的选择器发送到实例0x1e5c90f0
现在我总是感到困惑,并尝试了一些失败的尝试,从任何类型的数据类型到NSDictionary中获取此JSON。一种尝试是将值Object放入NSString并使用
[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error];
将它放入字典但是也失败了,因为它仍然是一个NSCFArray。有人可以告诉我如何获得
的内容[request.response objectForKey:@"venues"]
进入NSDictionary,以便我可以用这个内容填充我的UITabelview吗?
编辑:
以下是Dictionary request.response:
的值部分中的内容(
{
categories = (
{
icon = {
name = ".png";
prefix = "https://foursquare.com/img/categories/food/default_";
sizes = (
32,
44,
64,
88,
256
);
};
id = 4bf58dd8d48988d10b941735;
name = "Falafel Restaurant";
pluralName = "Falafel Restaurants";
primary = 1;
shortName = Falafel;
}
);
contact = {
};
hereNow = {
count = 0;
groups = (
);
};
id = 4df3489dfa76abc3d86c4585;
likes = {
count = 0;
groups = (
);
};
location = {
cc = DE;
city = "Vinn";
country = Germany;
distance = 92;
lat = "51.44985";
lng = "16.648693";
state = "Nordrhein-Westfalen";
};
name = "Yildiz D\U00f6ner";
specials = (
);
stats = {
checkinsCount = 3;
tipCount = 0;
usersCount = 2;
};
verified = 0;
}
这似乎来自Type of NSCFArray。我如何从这另一个词典创建,以便我可以通过键访问JSON值?对不起,如果我今天真的很慢......
答案 0 :(得分:3)
你要求“场地”我假设是一个这样的阵列。因此,在反序列化json之后,记录返回对象以查看您获得的内容。几乎可以肯定是一系列词典。