我是 iPhone 应用程序的新手。我正在学习如何获取 JSON 数据并对其进行解析并将其显示在 iPhone 的表格中。为此,我正在经历this video
。
我用 xib 文件做了这个,它工作得很好。
我正在尝试使用Storyboard
. 我做了和我做的一样的事情Stoaryboard
,但是执行在下一行中断了。
cell.textLabel.text = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];
我的代码是
-(UITableViewCell *) tableView:(UITableView *) tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"i m here 1");
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];
NSLog(@"i m here 2");
if (cell==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
NSLog(@"i m here 3");
}
NSLog(@"i m here 4");
cell.textLabel.text = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];
// cell.textLabel.text = @"dadsf ad";
NSLog(@"i m here 5");
return cell;
}
在NSLog
中,我得到输出直到i m here 4
。
当我评论cell.textLabel.text = [[news objectAtIndex
和取消评论时cell.textLabel.text = @"dadsf ad";
,它可以工作并且我dadsf ad
在 iPhone 中看到。
// cell.textLabel.text = [[news objectAtIndex:indexPath.row] objectForKey:@"title"];
cell.textLabel.text = @"dadsf ad";
当我运行时cell.textLabel.text = [[news objectAt
,我进入屏幕下方。
笔记:
我也去了模拟器并做了Reset Content and Setting
,仍然面临同样的问题。知道为什么吗?
更新 1
我激活NSZombieEnabled
并运行代码。我进入 NSLOG 作为
JSONNewsStoryBoard[19389:11303] i m here 4
2013-01-06 11:26:15.327 JSONNewsStoryBoard[19389:11303] *** -[CFArray objectAtIndex:]: message sent to deallocated instance 0x7497040
下面是屏幕截图。
更新 2 - 答案
我尝试添加NSLog(@"checking news count %d", [news count]);
,cellForRowAtIndexPath
我遇到了同样的问题。手段news
为空。
所以我加了
news = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil];
cellForRowAtIndexPath
并且它起作用了。:) :)