2012-07-15 16 views
2

當我使用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值?對不起,如果我今天真的很慢...

+0

請問您可以登錄您從webservice獲取的JSON嗎? – 2012-07-15 13:14:18

回答

3

你問「場地」,我認爲這是一個陣列。因此,在反序列化json之後,記錄返回對象以查看所得結果。這幾乎是肯定的一系列字典。

+1

你是對的!它是一個數組,每個Item都是一個Dictionary。 – CaptnCrash 2012-07-15 15:26:41

相關問題