通過這些方面可以避免很多麻煩耘斩,如內存泄漏顺少,循環(huán)引用和較大的內存消耗潭兽。
- 避免大量的單例倦始;
- 對子對象使用 __strong;
- 對父對象使用 __weak山卦;
- 對使引用圖閉合的對象(如委托)使用 __weak;
- 對數(shù)值屬性(NSInteger鞋邑、SEL、CGFLoat等)而言账蓉,使用assign限定符枚碗;
- 對于塊屬性,使用 copy 限定符铸本;
- 當聲明使用 NSError ** 參數(shù)的方法時肮雨,需要使用 __autoreleasing,正確的語法:NSError * __autoreleasing *箱玷;
- 避免在塊內直接引用外部的變量怨规。在塊外面將他們 weakify陌宿,并在塊內再將他們 strongify 。參考(http://www.reibang.com/p/50fcae45e0e6)
- 進行必要的清理:
1波丰、銷毀計時器壳坪;
2、移除觀察者掰烟;
3爽蝴、解除回調(強引用的委托置為 nil);