2012-10-10 30 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