0
我最近將一些代碼轉換爲ARC,大部分代碼我沒有自己寫,但現在我已經花了好幾個小時來弄清楚了。EXC_BAD_ACCESS code = 2使用ARC的Obj-C代碼錯誤
這個代碼運行良好,當不在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];
}
}
任何人有任何想法,爲什麼這可能會導致麻煩?
有時候我覺得很蠢,或者是盲目的。謝謝!自從我剛剛進入該項目以來,Wil可能會在稍後的階段重新編寫代碼。 – 2012-04-26 12:09:45