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