2012-06-27 95 views
0

我使用ARC在我的代碼,我得到的錯誤ARC自動釋放與地方

Object 0x781b8e0 of class __NSCFString autoreleased with no pool in place - just leaking - break on objc_autoreleaseNoPool() to debug 

它打破上是

return UIApplicationMain(argc, argv, nil, NSStringFromClass([HomePageAppDelegate class])); 

由於我使用ARC我不能行沒有游泳池圍繞它放置一個NSAutoReleasePool就像我通常會。我可以使用什麼來解決這個錯誤?

回答

0

使用這個就行了它顯示warning

@autoreleasepool{ 
} 
+3

-1只是因爲你沒有詳細說明它的作用。考慮到OP似乎不是該語言的主人,所以引用關於您發佈的代碼的一些事實或參考資料總是很好的。 –

+0

在這個問題中沒有什麼可以說得很清楚的,我說的簡單的說法就是保留這些內容。如果你不明白並不意味着每個人都不明白。答案是正確的,這是自我解釋。不要錯過指導每一個。直到錯誤才把注意力集中在別人的答案上 – Sumanth

+0

謝謝Sumanth。你的回答是對的。感謝您的幫助 – BigT

6

您使用@autoreleasepool結構:

@autoreleasepool { 
    // main code here 
} 

這將創建具有相同範圍的括號NSAutoReleasePool,而且還可以也可用於MRC代碼。它具有在發生異常時可以清理的優點,並且可以很容易地用於安全地分派線程。

要了解更多信息,請訪問這篇文章Transitioning to ARC Release Notes

0

創建ARC一個新的測試應用程序啓用。查看「main.m」中的代碼,查看Apple建議的內容。

+0

考慮到兩個答案表明它並不那麼複雜,似乎有點浪費。 –

+1

當有某種方法可以讓某人自己找到答案時,我寧願將它們指向那個方向,而不是簡單地在它們上面放置一行明顯的代碼。如果這不符合某些SO人的勺子理論,那就很難。 :-) –

+0

關於這一點的事情是,它不會幫助未來的遊客。完全在蘋果公司的力量,改變他們的模板項目做一些事情,而不是在啓動時創建一個自動釋放池,你不能依靠這個永不改變。 –