访问UITableViewController中的NSMutableArray崩溃

时间:2011-09-30 10:14:02

标签: objective-c json nsmutablearray uitableview

我是Object-c的新手,想在Xcode 4中使用JSON数据源创建一个基于UITableViewController的应用程序。 我导入了JSON框架并定义了一个NSMutableArray来填充响应:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

[connection release];

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];

items = [responseString JSONValue];

[self.tableView reloadData];
}

我一切顺利但是当我尝试在

中访问我的items数组时
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

功能,它崩溃我的应用程序。

可能是什么问题? 提前谢谢!

更新: 我修改了数组填充代码的一部分,它解决了崩溃问题:     NSMutableArray * a = [responseString JSONValue];

for(NSDictionary *it in a) {

    [items addObject:it];
}

但我仍然不知道为什么......

1 个答案:

答案 0 :(得分:0)

就像你将JSON-Value分配给实例变量一样。 该对象是自动释放的(“JSONValue”不包含单词alloc,init或copy),因此它将在将来的某个时间消失。

尝试为对象添加属性: 部首:

@property (nonatomic, retain) NSArray *items;

实现:

@synthesize items;

...

self.items = [responseString JSONValue];

...

- (void)dealloc {
    ...
    self.items = nil;
    [super dealloc];
}