高性能iOS应用开发笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wutengwei007/article/details/79217776
最佳实践:
  • 避免使用大量的单例具体来说,不要出现上帝对象(如职责特别多活状态信息特别多的对象)。这是一个反模式,指代一种常见的解决方案的设计模式,但是很快产生了不良效果。日志器、埋点服务和任务队列这样的辅助单例都是很不错的,但全局状态对象不可取。
  • 对子对象使用__strong
  • 对父对象使用__weak
  • 对使用引用图闭合的对象(如委托)使用__weak
  • 对数值属性(NSInteger、SEL、CGFloat)而言,使用assign 限定符
  • 对于块属性,使用copy限定符
  • 当声明使用NSError ** 参数的方法时,需要使用__autoreleasing,并要注意用正确的语法:NSError * __autoreleasing *
  • 避免在块内直接引用外部变量。在块外面将他们wekify,并且在块内将他们strongify。了解@weakify 和 @strongify。(https://github.com/jspahrsummers/libextobjc
  • 进行必要清理时遵循以下准则:
销毁计时器
移除观察者(具体来说,移除对通知的注册)
解除回调(具体来说,将强引用的委托设置为nil

猜你喜欢

转载自blog.csdn.net/wutengwei007/article/details/79217776