2011-12-27 9 views
3

NSZombieEnabledをオンにすると、実行時にEXC_BAD_ACCESSの問題が発生するのを防ぐことができます。リリースされたアプリのNSZombieEnabledをオフにする必要がありますか?

メモリリークがないことを確認するためにデュアルデューディングを行っていますが、それ以上に解放する可能性があります。NSZombieEnabledがオンになっていると、それを防ぐのに役立ちますか?またはNSZombieEnabledをオンにすると、すべてのメモリ解放操作がno-opに変換されますか?それは大きな問題になるでしょう。

答えて

2

いいえ、あなたはいけません同梱はNSZombiesEnableです。ゾンビは、割り当てられていないオブジェクトのisaポインタを「ゾンビ」クラスにキャストして動作します。 NSDeallocateZombiesが有効になっていない限り、このオブジェクトのストレージは解放されません。したがって、ゾンビを有効にしておくと、メモリがリークしている可能性があります。また

、AppleはNSDebug.hで有効になって、それを残していないと言う:

このソフトウェアの将来のリリースでは、コード におけるこれらの記号のいずれかのexistanceに依存しないでください。確かに、プロダクションコードのこのヘッダーの シンボルには依存しないでください。

AppStoreで配布している場合は、レビューに合格しないと思います。

1

NSZombieEnabledをオンにすると、割り当てられたオブジェクトが割り当て解除されないため、アプリが漏れてしまうため、オフにする必要があります。

http://www.cocoadev.com/index.pl?NSZombieEnabled

「」何のオブジェクトがあなたのアプリケーションがメモリの膨大な量を使用すること、真に割り当て解除されませんデフォルトでようNSZombieEnabledは、恒久的な場所に残されるべきではない「」

関連する問題