我對Cocoa/Objective-C還很新,所以我希望我能解釋我的問題。
我在Xcode 4.2中創建了一個垃圾收集應用程序我有我的應用程序委託創建一個Authorize對象(我的類)該對象將創建並呈現一個Password對象(我的類/ xib)。可可垃圾收集和保留週期
密碼窗口接受輸入並批准或拒絕並關閉。從那裏,Authorize對象將關閉並控制返回到應用程序委託。當密碼筆尖呈現爲模式窗口時。
作爲一個測試,我包括一個NSLog語句,當每個對象被初始化和它的最終化。出於某種原因,我的密碼對象沒有被最終確定。授權對象已完成。
我甚至取消了Authorize對象,並直接從應用程序委託創建了密碼 - 仍然沒有最終確定。
我研究並嘗試了一切/我可以想到的任何事情來獲取此對象來完成(我假設它不釋放這個對象的內存,如果它沒有最終確定)。
任何人都可以提出一些我可能忽略的東西嗎?
更新:
更多經過試驗,我發現這個問題。我創建了一個只有AppDelegate和WindowController/Nib文件的新項目。使用與GC和構建相同的設置,我能夠消除所有事情,直到找到問題。
我在我的密碼筆尖中有一個NSSecureTextfield。無論出於何種原因,當窗戶關閉時都不會釋放。
在關閉窗口並調用了finalize方法之前,我添加了行[textField removeFromSuperview]。
我不確定這是否是最好的方法,但似乎可行。
對於ARC選項,我的印象是項目需要以10.7或更高爲目標來使用ARC。我希望將10.5作爲最低目標。
也許我錯了。如果我是,請讓我知道。
ARC確實需要10.7。 –