0

我知道这是基本的客观 C 问题,但我有严重的问题。我有一个 NSMutable 数组,我在 connectionDidFinishLoading 中填充了值。我可以在 NSLog 中看到值被正确分配。但是当我试图在 DidSelectRow 中获取这些值时(当我使用表格视图时,我得到一个 BAD_ACESS 错误)

这是我的代码:

@implementation MainMap
{

    NSMutableArray *condition ;
}
..
- (void)viewDidLoad
{
    [super viewDidLoad];
}
...
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
condition= [NSMutableArray array];
..adding objects..
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    //app crashes in here
NSLog(@"Condition of pressed item is %@",[condition objectAtIndex:indexPath.row]);
}

如果我将 condition= [NSMutableArray array];ViewDidLoad 放在里面,我会得到一个SIGBART.

此外,我尝试将声明放在 .h 文件中并将其作为属性,然后在 .m 中合成它,但仍然没有。也许我错过了一些东西,所以你能解决它吗?

4

1 回答 1

2

试试[NSMutableArray new][NSMutableArray array]condition然后你应该在你的- 方法中释放dealloc

否则,您可以启用 ARC (http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained/)。使用 ARC,您不能自己处理引用计数。

于 2012-09-09T19:21:11.893 回答