2011-04-20 71 views
0

我在內存管理中遇到了一些問題,然後嘗試使用intrument工具修復它。如何使用NSZombieEnabled oninterment Xcode 3.2.5

基礎上mark j video on you tube

有關intrument使用NSZombieEnabled,我試着做這樣的。問題是我從來沒有找到一個複選框來在我的樂器中設置NSZombieEnabled激活。在這種情況下,我使用xcode 3.2.5,仍然在IOS 4.2上。

這是從顯示NSZombieEnabled沒有一個複選框儀器截圖激活: instrument screenshot

我做錯了什麼? 幫我請

謝謝

回答

0

嘗試運行您的模擬器應用程序,看看你在工具選項。你可以參考this教程,看看它是如何在XCode中3.2完成或您可以參閱接受的答案在this線程的XCode 4

0

爲什麼不安裝新的Xcode 4?在那裏你可以很容易地在Scheme的Arguments for Debug選項卡下設置Scheme中的EnvironmentVariables。

要檢查它實際上是設置我使用此代碼...

if(
     getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled") 
     ) { 
     NSLog(@"--------------------------------------->NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!"); 
    } 
+0

代碼必須執行什麼方法? – 2011-04-20 07:18:13

+0

任何地方,我把它放在開始的某個地方,所有我的其他調試輸出開始之前,我可能會忽略它... – user387184 2011-04-21 19:47:20

0

有一個簡單的方法,使NSZombie如果你是通過執行涉及XCode的第4版以下簡單步驟:

請點擊名稱爲Product choose - > edit scheme - > arguments選項卡的方案下拉條,然後在環境變量列中添加NSZombieEnabled,在值列中添加YES ...現在您已經通過使NSZombie在程序中找到錯誤來完成。

當你運行你的應用程序,你會得到一個錯誤信息在應用程序崩潰設定NSZombie狀態啓用,但最初使NSZombie之前,你可能會發現很難找出在自動釋放池什麼也正是錯誤的,就像死機,目前使用objective-c,BAD_ACCESS錯誤等gdb中斷...通過啓用NSZombie,你可以找到什麼是正確的問題,如不正確的釋放,試圖重新訪問,或不正確的釋放內存等。錯誤可能是以下種類:

-[ExampleProgramViewController alertView:didDismissWithButtonIndex:]: message sent to deallocated instance 0x7068f70