内存优化需要注意事项

通过这些方面可以避免很多麻烦,如内存泄漏,循环引用和较大的内存消耗。

  • 避免大量的单例;
  • 对子对象使用 __strong;
  • 对父对象使用 __weak;
  • 对使引用图闭合的对象(如委托)使用 __weak;
  • 对数值属性(NSInteger、SEL、CGFLoat等)而言,使用assign限定符;
  • 对于块属性,使用 copy 限定符;
  • 当声明使用 NSError ** 参数的方法时,需要使用 __autoreleasing,正确的语法:NSError * __autoreleasing *;
  • 避免在块内直接引用外部的变量。在块外面将他们 weakify,并在块内再将他们 strongify 。参考(http://www.jianshu.com/p/50fcae45e0e6)
  • 进行必要的清理:
    1、销毁计时器;
    2、移除观察者;
    3、解除回调(强引用的委托置为 nil);

你可能感兴趣的:(内存优化需要注意事项)