1.OC的內存管理機制是引用計數, 內存管理原則是誰開闢誰釋放, 有retain就要有release.程序員
2. 分爲ARC(自動引用計數)和MRC(非自動引用計數), 在MRC下, 咱們須要手動管理內存,須要使用到retain/copy/release/autorelease等方法實現內存管理, ARC下通常不須要程序員手動管理內存, 系統會爲程序添加自動釋放池以實現內存管理, 固然, 我們說的通常不須要不能理解爲徹底不須要考慮內存問題, 好比在解決block循環引用問題的時候, 就須要使用__weak修飾, 須要注意的是ARC和MRC下解決循環引用的方法還不同,MRC下是__block, ARC下是__weak .安全
3.與retain匹配的是release, 由於retain是引用計數+1, 在內存管理中, 要記得內存管理原則: 誰開闢誰釋放, 有retain就要有release. release是引用計數-1. alloc匹配的是dealloc, alloc是開闢內存空間, dealloc是銷燬所開闢的內存, 有開闢就要有銷燬. 三.readWrite讀寫特性, 可讀可寫. readonly只讀, 只有getter, 沒有setter. assign通常用於基本數據類型和ID類型. copy拷貝, 通常用於 atom
4.NSString. 分爲深拷貝和淺拷貝, 深拷貝拷貝的是對象, 淺拷貝拷貝的是指針. nonatomic非原子性, 不考慮線程安全, 優勢是效率高. atomic原子性, 有點是線程安全, 缺點是效率低. strong強引用, 和MRC下的retain同樣. weak弱引用, 相似MRC下的assign. 可是要注意的是strong和weak都是修飾對象類型的屬性的, 不能修飾基本數據類型. ARC下仍然使用assign修飾基本數據類型. 線程