0
當我嘗試使用NSManagedObject子類時遇到了一個奇怪的問題。我有代碼看起來是這樣的:保留在NSManagedObject崩潰
[self.navigationController popViewControllerAnimated:NO];
MyController *myController = [[MyController alloc] init];
myController.managedObject = managedObject;
很簡單吧?但由於某種原因它會在用於設置「managedObject」的合成函數中崩潰。我試着用一些替代的功能是這樣的:
- (void) SetManagedObject:(NSManagedObjectSubClass*) obj
{
if (managedObject)
[managedObject release];
managedObject = obj;
--> [managedObject retain];
}
這崩潰的保留呼叫......我很爲難,不知道從哪裏開始調試這一點。
我認爲你需要更仔細地閱讀這個問題。如果你重新閱讀這個問題,你會發現我之前使用了合成函數,但是這個函數崩潰了,所以我故意創建了自己的函數(替換合成函數)來查看它崩潰的位置。原來它在保留上崩潰。如果你看看我的功能,我不釋放對象,我釋放PREVIOUS對象。有很大的不同。 – rhinoinrepose 2011-05-02 08:15:12
你說得對。我誤解了這個問題 - 抱歉。另一個想法是,你正在傳遞一個過度釋放的對象obj。您是否已經嘗試使用「殭屍」工具運行您的代碼? – 2011-05-02 12:21:41
看來我的「obj」obj沒有合適的保留和釋放次數。可能是因爲我直接訪問它,而不是使用self.obj。無論如何,現在修復感謝您的答案。 – rhinoinrepose 2011-05-03 17:16:13