0

Mallocガードが有効になっていないときに正しく動作する開発中のiPhone用アプリがあります。ただし、malloc ガードを有効にしようとすると、アプリが読み込まれた後に次のエラーが発生します。

#0  0x95f65684 in objc_msgSend ()

#1 0x30506515 in NSPopAutoreleasePool ()

#2 0x30901697 in _UIApplicationHandleEvent ()

#3 0x32046375 in PurpleEventCallback ()

#4 0x30245560 in CFRunLoopRunSpecific ()

#5 0x30244628 in CFRunLoopRunInMode ()

#6 0x308f930d in -[UIApplication _run] ()

#7 0x309021ee in UIApplicationMain () 今私の問題は、エラーが発生した正確な場所をデバッグできないことです.. malloc_error_breakを試しましたが、うまくいきませんでした。malloc ガードを有効にすると、割り当てに基づいてオブジェクトの一部が自動解放されますか??

4

1 に答える 1

0

自動解放されたメモリを解放しています。あなたのコードを見なければ、問題が何であるかを正確に言うのは難しいですが、次のようになります:

NSString* aVar = [NSString stringWithFormat:@"Hello %@", worldVariable];

...

[aVar release];

これは release ステートメントではクラッシュしませんが (参照カウントが少なくとも 1 であるため) 、自動解放プール「ドレイン」される実行ループの後半の時点でクラッシュします。

于 2010-02-08T10:36:36.563 に答える