私はiPhone開発とXcode全般に不慣れで、EXC_BAD_ACCESS
信号のトラブルシューティングを開始する方法がわかりません。エラーの原因となっている正確な行でXcodeを壊すにはどうすればよいですか?
問題の原因となっている行でXcodeを停止させることができないようですが、デバッグコンソールに次の行が表示されます。
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextSetStrokeColorWithColor:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextSetLineWidth:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [1289]:CGContextAddPath:無効なコンテキスト
日10月25日15:12:14jasonsmacbookTestProject [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;
}
回線を削除すると信号[array release]
が届かなくなりましたが、EXC_BAD_ACCESS
なぜこれが機能するのか混乱しています。init
物件を利用したところ、自動的に保管してくれるので、漏れないように内部から解放する必要があると思いました。私はこれがどのように機能するかについて完全に混乱しており、私が読んだすべてのガイドとStackoverflowの質問は、initメソッド内でプロパティを設定する方法について私を混乱させるだけです。どちらの方法が最適かについては、コンセンサスが得られていないようです。