內存管理關心的是什麼?
清理內存以便內存能夠再次利用
Objective-C的基本內存管理模型分爲三種:
- 自動垃圾收集
- 自動引用計數(ARC)
- 手動引用計數和自動釋放池
1. 自動垃圾收集
2.手動管理內存
手動內存管理總結(共6點)
- 如果需要保持一個對象不被銷燬,可以使用retain,在使用完對象後需要使用release進行釋放;
- 使用release進行釋放對象時,對象並不一定立刻被銷燬,只有引用計數變爲0時才有系統調用dealloc進行釋放;
- 自動釋放池結束時會向對發送autorelease的所有的對象發送release消息,如果池中某個對象引用計數變爲0,則系統調用dealloc銷燬該對象。
- 自動釋放池結束時對池中對象發送release消息也不一定能夠銷燬所有的對象,因爲某個對象引用計數可能還不爲0;
- 當程序終止時所有的對象都被銷燬;
- 對使用alloc retain copy方法的任何對象,以及具有retain和copy的屬性的對象釋放時,需要dealloc方法使得在對象釋放的時候能夠釋放實例變量