来自nsmutablearray的数据在所有方法中都不可见

时间:2012-09-09 19:15:14

标签: objective-c ios nsmutablearray

我知道这是基本的客观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中进行合成,但仍然没有。也许我错过了什么,你能解决它吗?

1 个答案:

答案 0 :(得分:2)

只需尝试[NSMutableArray new]而不是[NSMutableArray array]。然后,您应该在condition - 方法中发布dealloc

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