2009-12-04 82 views
5

分段故障我有一個iphone應用程序。它似乎運行良好。當我連接到配置好的iPhone到Xcode並運行應用程序時,控制檯登錄管理器窗口,當用主鍵退出應用程序時,總是抱怨分段錯誤。信號11,iphone應用程序退出

有其他人看到這一點,你有什麼樣的問題可能是一個想法?我使用線程來加載背景中的網頁,但是當退出時我會停止線程。

我的應用程序不會保存一些持久性信息。當我使用構建和分析函數時,我得到了2個潛在的內存泄漏,但是在每種情況下,我都在分配一個對象並將其保存在一個數組中。

任何想法,或這是正常的?

+1

NSZombieEnabled確實幫我找到了我以前找不到的崩潰。 – BastiBen 2011-02-13 15:58:47

回答

7

嘗試使用NSZombieEnabled運行您的應用程序。這會告訴你,如果你是釋放任何對象。爲了使殭屍做到以下幾點:

  1. Choose Project > Edit Active Executable to open the executable Info window.
  2. Click Arguments.
  3. Click the add (+) button in the 「Variables to be set in the environment」 section.
  4. Enter NSZombieEnabled in the Name column and YES in the Value column.
  5. Make sure that the checkmark forthe NSZombieEnabled entry is selected.
+0

使用NSZombieEnabled,我應該在哪裏設置一個斷點來解決問題? 使用此設置,我程序提前終止消息:CFString autorelease:發送到釋放實例的消息。 當消息被髮送到一個釋放的字符串時,我想斷開,所以我可以找出哪個字符串。 謝謝, 格里 – Gerry 2009-12-07 17:02:46

+0

殭屍啓用。我的代碼在下面代碼的[parser parse]行內出錯。這個位發生在NSThread上。任何關於什麼會導致問題的想法。我的foundCharacters例程沒有命中。 謝謝, Gerry(code in next comment) – Gerry 2009-12-07 21:49:20

+0

NSURL * nsurl = [NSURL URLWithString:query]; \t NSURLRequest * request = [NSURLRequest requestWithURL:nsurl]; \t \t data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; \t \t NSXMLParser * parser = [[NSXMLParser alloc] initWithData:data]; \t [解析器setDelegate:self]; \t [parser setShouldProcessNamespaces:NO]; \t [解析器setShouldReportNamespacePrefixes:NO]; \t [parser setShouldResolveExternalEntities:NO]; \t errorStr = nil;如果([parser parse] == YES) \t // stuff – Gerry 2009-12-07 21:50:19

0

退出時,應用程序可以過度釋放對象嘗試釋放它之前傾銷每個對象或做一些調試,在dealloc方法。

0

也許你釋放一些反對比保留計數多次。在您找到罪魁禍首之前,請在您的dealloc方法(或其他地方)中註釋-release呼叫。

然後取消出調用,並在你的代碼別處尋找你在哪裏試圖到該對象過度釋放。

如果使用方便的方法,例如,(例如[NSString stringWithFormat:@"..."]),而不是alloc-init方法(例如[[NSString alloc] initWithFormat:@"..."])將所得便利對象被自動釋放,並且不應被手動釋放。

0

我的問題是uididfaker和locationholic在Cydia和卸載它們在我的iPhone就好了Xcode的運行之後。