我完全喪失了內存錯誤。此問題僅在device
上的happens
而不是simulator
。它也僅在應用程序第一次在設備上加載時發生。如果我關閉應用程序並重新啓動它,則問題不會預設。這是我得到的錯誤僅在設備上發送到已釋放實例的消息
-[CFString retain]: message sent to deallocated instance 0xfd5a2f0
我試過一切,試圖找出發佈的字符串是什麼。請幫我弄清楚在設備上運行時釋放的對象是什麼,而不是模擬器!提前致謝!
更新: 我還沒有解決方案,但我已經確認該應用程序將崩潰在代碼行,我設置一個框架和上面的錯誤顯示一致。如果我將此代碼註釋掉,應用程序將通過這一點,但可能會在其他奇怪的地方崩潰。我甚至無法確定發生事故的原因。
CGRect frame = CGRectMake(27, 96, 265.0, 50.0);
someAcct.frame = frame;
我很困惑,因爲這不是一個字符串。有任何想法嗎?
更新2:此問題與正在同步的NSUser默認值直接相關。這似乎很隨機,但這是造成這個問題。任何幫助?
更新3:問題已在一週前解決。這實際上是由於字符串不可訪問。一個字符串被傳遞給一個方法,然後該方法工作並將數據傳遞給另一個方法等等。直到最後纔將數據寫入用戶默認值和包含在文檔文件夾中的本地plist。突然之間,應用程序會一直崩潰在上述非常奇怪的地方,即使這些地方與字符串無關。我很困惑,並且在玩了很長一段時間之後,我決定轉到.h文件並逐個檢查每個字符串,確保每個字符串都在.m文件中合成,並且應用self.stringName整個.m文件。花了一個小時後,我終於找到了應該責備的字符串,現在問題已經解決。使用self.stringName可以找到內存並避免這些模糊和高度混淆的應用程序崩潰。感謝大家提供的所有建議和提示!
您應該在儀器中測試以找出內存泄漏 – SachinVsSachin
您可以在我的啓用NSZombie中找到受影響的代碼部分並運行。找到代碼部分和帖子。這樣我們可以更好地幫助你。 :) –
NSString意外發布...您需要設置屬性併合成字符串並與自己一起使用。 –