0

我最近将一些代码转换为 ARC,其中大部分代码不是我自己编写的,但现在我已经尝试了几个小时来解决这个问题。

此代码在不在 ARC 上时运行良好,尽管在分析时它会产生一些潜在的泄漏。

当我运行时,我在第三行得到一个异常:poi[i]=[MapPOI alloc],但我的猜测是其他段也可能会造成一些麻烦。

poi = (__strong MapPOI **)malloc(sizeof(MapPOI *) * dbsize);
for (int i = 0; i < dbsize; i++) {
    poi[i] = [MapPOI alloc];
}
poilayer = (__strong CALayer **)malloc( sizeof(CALayer *) * ( dbsize + (extraDB == nil ? 0 : [extraDB count]) ) );

if (extraDB != nil) {
    extraPOI = (__strong MapPOI **)malloc(sizeof(MapPOI *) * [extraDB count]);
    for (int i = 0; i < [extraDB count]; i++) {
        extraPOI[i] = [MapPOI alloc];
    }
}

有人对为什么这可能会造成麻烦有任何想法吗?

4

1 回答 1

2

有人对为什么这可能会造成麻烦有任何想法吗?

好吧,您-initMapPOI对象失败了。

此外,您可能应该将它们存储在 NSArrays(或 NSMutableArrays)中。

于 2012-04-26T11:08:04.153 回答