美文网首页
内存管理遵循规则

内存管理遵循规则

作者: RichieQ | 来源:发表于2021-05-24 09:21 被阅读0次

通过遵循这些最佳实践,你将很大程度上避免许多麻烦,如内存泄漏、循环引用和较大内

存消耗。(你可以将这一部分打印出来,挂在工位上,以便快速查看。)

  • 避免大量的单例。具体来说,不要出现上帝对象(如职责特别多或状态信息特别多的对 象)。这是一个反模式,指代一种常见解决方案的设计模式,但很快产生了不良效果。 日志器、埋点服务和任务队列这样的辅助单例都是很不错的,但全局状态对象不可取。

  • 对子对象使用 __strong。

  • 对父对象使用 __weak。

  • 对使引用图闭合的对象(如委托)使用 __weak。

  • 对数值属性(NSInteger、SEL、CGFloat 等)而言,使用 assign 限定符。

  • 对于块属性,使用 copy 限定符。

  • 当声明使用NSError **参数的方法时,需要使用__autoreleasing,并要注意用正确的 语法:NSError * __autoreleasing *。

  • 避免在块内直接引用外部的变量。在块外面将它们 weakify,并在块内再将它们 strongify。 参 见 libextobjc 库(https://github.com/jspahrsummers/libextobjc) 来 了 解 @weakify 和 @strongify。

    • 进行必要清理时遵循以下准则:

    ♦ 销毁计时器 ♦ 移除观察者(具体来说,移除对通知的注册)

♦ 解除回调(具体来说,将强引用的委托设置为 nil)

内容摘自Gaurav Vaish的《高性能iOS应用开发中文版》

相关文章

  • 内存管理遵循规则

    通过遵循这些最佳实践,你将很大程度上避免许多麻烦,如内存泄漏、循环引用和较大内 存消耗。(你可以将这一部分打印出来...

  • CUDA01-03运算优化与内存优化

      内存优化很重要,需要遵循内存的使用规则,但规则需要使用场景。同时运算优化也很重要,本主题使用例子来说明内存优化...

  • 内存管理规则

    内存管理官方文档 基本的内存管理规则: 内存管理模型立足于对象的从属关系,任何对象都有一个或多个所有者,也就是说一...

  • 我所理解的内存管理:2、ARC相关

    6、ARC仍然遵循MRC的内存管理方式,4个基本规则在ARC下仍然是有效的,区别只在于:MRC模式下需要手动键入r...

  • OC的内存管理

    1、OC的内存管理 OC是通过引用计数进行内存管理的,其核心思想遵循“谁创建谁释放;谁引用谁管理”。 OC的内存管...

  • 编写高质量的代码

    内存管理 理解内存和Objective-C内存管理规则 内存管理,曾经是程序猿/媛们的噩梦,特别是在面向过程中。虽...

  • iOS 利用Insruments 工具集 检测内存泄露(一)

    首先复习下内存管理基本知识 MRC: iOS5.0之前,OC内存管理遵循谁创建,谁释放,谁引用,谁管理的机制,当创...

  • iOS/OS X内存管理(二):借助工具解决内存问题

    上一篇博客iOS/OS X内存管理(一):基本概念与原理主要讲了iOS/OSX 内存管理中引用计数和内存管理规则,...

  • iOS ARC

    内存管理 引用计数:Objective-C Python 垃圾收集:C#,Java等 区别 内存管理的基本规则 自...

  • 内存管理概念与原理以及解决办法

    一、内存管理的基本规则 在Objective-C的内存管理中,其实就是引用计数(reference count)的...

网友评论

      本文标题:内存管理遵循规则

      本文链接:https://www.haomeiwen.com/subject/vgotsltx.html