objective-c中的對象是采用引用計數來管理的。并且有兩種管理模式,一種是自動的管理模式,一種是手動的模式。
當使用alloc分配的對象,就確定了手動引用計數的管理模式。
必須手動release對象,才能保證沒有內存泄露。
如果直接調用類的構造函數創建的對象,就是自動管理的對象。它會自動調用release從內存中刪除對象。
retain關鍵字是和release相對的,相當于com中的addref接口,能夠增加引用計數,并返回一個對象指針。
autorelease關鍵字是為了解決對象引用屬性自我賦值而設計的。它能夠在當前函數返回時,執行對相應對象的release操作,這樣當自我賦值的時候,retain增加了引用計數后,才執行release就避免了直接release導致的自我賦值時的對象意外銷毀的情況。
ok,大概就是這樣。objective-c的語法,真的很個性。