0

iOS7 でのみ発生していたクラッシュ (iOS6 は問題ありませんでした) のトラブルシューティング中に、アプリケーションはトラブルシューティングに役立たない行で数回クラッシュしましたが、最終的には のような行で 1 回クラッシュしました[object release]

問題のある行を削除した後、クラッシュは消えました。

古いコード:

[imageView removeFromSuperview];
[imageView release];
imageView = nil;
imageView = [[UIImageView alloc] initWithImage:image];
[self addSubview:imageView];

新しいコード:

[imageView removeFromSuperview];
//[imageView release];
imageView = nil;
imageView = [[UIImageView alloc] initWithImage:image];
[self addSubview:imageView];

スタックはここでクラッシュを示していました:objc_msgSend ()

iOS7 で古いコードがクラッシュした理由と、私が間違っていたことを誰かが説明してくれれば幸いです。また、iOS6 でクラッシュしなかった理由も知りたいです。

4

1 に答える 1

0

NS Zombies を有効にして、自分のように聞こえる過剰なリリースを試みていないことを確認してください。リリースする前に、imageView が nil でないかどうかを確認する必要があります :)

できればARCに移行することをお勧めします。

于 2013-10-17T23:38:42.763 に答える