2012-10-10 32 views
2

我正在使用故事板和MasterView佈局構建項目。我試圖讓從JSON文件UITableView數據(http://afterimagedesign.tk/topHits.json我不知道這是正確的JSON或不是,我是新),所以我稱之爲viewDidLoad()iOS 6 NSDictionary來自JSON文件

responseData = [[NSMutableData data] retain]; 
NSURLRequest *topHitsRequest = [NSURLRequest requestWithURL:[NSURLURLWithString:@"http://afterimagedesign.tk/topHits.json"]]; 
[[NSURLConnection alloc] initWithRequest:topHitsRequest delegate:self]; 

,然後將這些方法connectionDidFinishLoading:(NSURLConnection *)connection方法,我稱之爲:

[connection release] 
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 
[responseData release]; 
NSDictionary *topHitsDictionary = [responseString JSONValue]; 
NSArray *topHitsArray = [topHitsDictionary valueForKey:@"title"]; 

的問題是(我認爲),我得到這個錯誤:「實例方法「-JSONValue找不到。」我已經找了一段時間了,我看過的所有教程都使用這種方法。是iOS 6還是其他?謝謝!

編輯:

如何將它添加到UITableView?我試過cell.textLabel.text = [self.topKpop objectAtIndex:indexPath.row];,但我一直收到一個SIGABRT錯誤。我收到了SIGABRT錯誤,但這次它在.m文件中。

+1

它看起來像你正在使用Max Kramer的擴展JSON解析。很可能,你忘了導入'JSON.h' – George

+0

噢。謝謝!但是我更喜歡NSJSONSerialization,因爲我不需要導入任何東西。 – gtr123

+0

導入代碼沒有問題。它基本上使用'NSJSONSerialization',只是讓你更容易。 – George

回答

4

我認爲這些教程使用的是SBJson或類似的JSON解析器框架。

如果您不想使用任何外部框架,您可以嘗試NSJSONSerialization類中的JSONObjectWithData:options:error:,該類自iOS 5.0起可用。

[connection release] 
NSError *jsonError = nil; 
NSDictionary *topHitsDictionary = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonError]; 
NSArray *topHitsArray = [topHitsDictionary valueForKey:@"title"]; 
// ... 
[responseData release]; 
+0

謝謝!最終,我使用了Max Kramer的擴展,但我更喜歡內置的方式。 – gtr123

+0

不客氣!我前一段時間碰到類似的問題。 – Andrew

+0

現在它說BAD_ACCESS_CODE,當我把'self.topKpop = [NSMutableArray arrayWithObjects:[topHitsDictionary valueForKey:@「author」],nil];'。好傢伙。 – gtr123