當我使用BZForursquare將附近的Venues放入UITableView時,我現在真的被卡住了。如何將NSCFArray(可能的JSON)序列化爲NSDictionary?
BZFoursquare:https://github.com/baztokyo/foursquare-ios-api
我得到我裏面的requestDidFinishLoading委託方法Requestresult。在這個方法中,請求對象包含幾個NSDictionaries,一個字典在request.response中。此響應字典包含key =「venues」和值爲JSON對象的一個條目。當我把這個值對象轉換成字典類型似乎不是一個字典,而是一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的行給了我以下錯誤:
- [__ NSCFArray objectForKey: ]:無法識別的選擇發送到實例0x1e5c90f0
現在我總是困惑,並嘗試一些失敗的嘗試從任何類型的od數據類型它是到NSDictionary。一個嘗試是把值對象變成一個NSString和使用
[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error];
把它變成一個字典,但也失敗了,因爲它仍然是一個NSCFArray。有人可以告訴我怎麼弄的
[request.response objectForKey:@"venues"]
內容爲NSDictionary的,這樣我可以填充我UITabelview這個內容?
編輯:
這裏是什麼在價值部分來自字典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;
}
這似乎是從NSCFArray的類型。我怎樣才能從這個另一個字典創建,以便我可以通過鍵訪問JSON值?對不起,如果我今天真的很慢...
請問您可以登錄您從webservice獲取的JSON嗎? – 2012-07-15 13:14:18