我最近将一些代码转换为 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];
}
}
有人对为什么这可能会造成麻烦有任何想法吗?