對於爲iPhone編程時的自動釋放池,我有點困惑。我讀過很多東西,而且從「不要使用」到「沒有問題使用」的看法在我看來都是如此。用於提取方法的自動釋放池的使用
我的具體問題是,我想有它封裝SQLite3的訪問類,所以我有例如下面的方法:
-(User*)fetchUserWithId:(NSInteger)userId
現在,這種方法中的SQL查詢完成和新的用戶對象是使用數據庫中的數據創建的,然後返回。在這個DB Access類中,我不再需要這個對象,所以我可以做一個發佈,但由於調用方法需要它,我會做一個autorelease,不是嗎?
那麼,可以在這裏使用autorelease或者它會獲得太多的內存,如果這種方法被頻繁調用?一些網站說,autorelease池是在應用程序的最後發佈的,有人說,在每一個事件中(例如,用戶觸摸某物)。
如果我不應該使用autorelease,我該如何確保該對象正確釋放?我可以在提取方法中執行發佈操作,並希望在調用方法可以執行保留之前,該對象仍然存在嗎?
感謝您的幫助!
問候 馬蒂亞斯