相关疑难解决方法(0)

打破XCode中的EXC_BAD_ACCESS?

我是iPhone开发和XCode的新手,并不知道如何开始对EXC_BAD_ACCESS信号进行故障排除.如何让XCode在导致错误的确切行中断?


我似乎无法让XCode停在线路上导致问题,但我确实在调试控制台中看到以下几行:

Sun Oct 25 15:12:14 jasonsmacbook TestProject [1289]:CGContextSetStrokeColorWithColor:无效的上下文

Sun Oct 25 15:12:14 jasonsmacbook TestProject [1289]:CGContextSetLineWidth:无效的上下文

Sun Oct 25 15:12:14 jasonsmacbook TestProject [1289]:CGContextAddPath:无效的上下文

Sun Oct 25 15:12:14 jasonsmacbook TestProject [1289]:CGContextDrawPath:无效的上下文

2009-10-25 15:12:14.680 LanderTest [1289:207]*** - [CFArray objectAtIndex:]:消息发送到释放的实例0x3c4e610

现在,我试图绘制到我检索的上下文UIGraphicsGetCurrentContext()并传递给我想要绘制的对象.


进一步的试验和错误调试,我发现NSMutableArray我的班上有一个属性是一个僵尸.我进入了init该类的函数,这是我使用的代码:

if ((self = [super init])) {
        NSMutableArray *array = [NSMutableArray array];
        self.terrainBlocks = array;
        [array release];
    }
    return self;    
}
Run Code Online (Sandbox Code Playgroud)

我删除了[array release]线,它不再给我EXC_BAD_ACCESS信号,但我现在很困惑为什么这个工作.我认为当我使用该属性时,它会自动为我保留它,因此我应该从内部释放它init以便我没有泄漏.我完全混淆了它是如何工作的,我读过的所有指南和Stackoverflow问题只会让我更加困惑如何在我的init方法中设置属性.关于哪种方式最好,似乎没有达成共识.

iphone debugging xcode exc-bad-access objective-c

45
推荐指数
5
解决办法
6万
查看次数

标签 统计

debugging ×1

exc-bad-access ×1

iphone ×1

objective-c ×1

xcode ×1