添加属性时的exc_bad_access

时间:2012-10-19 13:57:47

标签: iphone objective-c ios

我在一个选项卡中有一个TabBarController我在NavigationController中有一个TableViewController。 当我添加像

这样的属性时
@property CGFloat rowHeight;

或添加类似

的内容
if ([self.modelTypeCell isEqualToString:@"TypeOneCell"])

我得到了

error: gdb remote returned an error: E08 EXC_BAD_ACCESS (Code=1....

在这一行

@autoreleasepool {
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}

我无法调试任何内容,并且在发生错误之前没有遇到任何断点。

编辑:Zombies没有给我信息,在仪器和真实设备上没有错误被抛出......

EDIT2: 我发现问题应该放在这里

-(void)setupControllerDictionaries
{
self.masterViewControllerDictionary = [[NSMutableDictionary alloc] init];

TableMasterViewController *master = [[TableMasterViewController alloc] initWithModelType:ModelTypeCustomer];

[self.masterViewControllerDictionary setObject:master forKey:[NSNumber numberWithInt:ModelTypeCustomer]];
[master release];

}

当我注释掉主版本时,错误消失了,也许它的错误可能是其他地方

1 个答案:

答案 0 :(得分:2)

如下所示,可以最好地使用属性:

@property(nonatomic,assign)CGFloat rowHeight;

nonatomics是因为该属性可以在多个线程中执行,并且赋值意味着属性应该在赋予属性时使用赋值属性。保留不能与此一起使用,因为此变量不是指针类型