美文网首页
鱼人学习小计(四)

鱼人学习小计(四)

作者: 鱼人敲代码 | 来源:发表于2017-07-24 00:47 被阅读0次

内存管理:
因为手机硬件的内存及其有限,当一个程序占用内存过高时,系统会发出警告。为了更好的用户体验,ios引入了内存管理的概念。ios主要通过引用计数器实现对oc对象的内存管理,这种引用计数器通常只作用在oc对象上而非基本数据类型,因为数据类型对象一般存放在栈上,当代码块结束时,代码块所涉及的所有局部变量会弹栈清空,指向对象的指针也会被回收,而存放在堆上的oc对象虽然没有指针指向,但仍存在与内存中,容易造成内存泄漏。
mrc:由开发人员手动retain和release操作引用计数。
arc:自动生成retain和release操作代码,判断原则为 没有强指针指向的对象则会被自动释放。
block中的内存管理,详见http://www.jianshu.com/p/ba825ef44d60
autoreleasepool自动释放池
mrc下,调用autorelease方法会将对象放入自动释放池内,当自动释放池释放时,会对池内所有变量做一次release操作。每个runloop都会自动产生一个自动释放池,当现runloop休眠或者迭代结束的时候,main 释放池会自动释放,当runloop唤醒或初始化时,会自动产生一个新释放池。释放池是栈序排列的,新创建的池会放在栈顶,优先释放。当遇到频繁创建临时对象时可考虑用自动释放池避免内存泄漏。

相关文章

  • 鱼人学习小计(四)

    内存管理:因为手机硬件的内存及其有限,当一个程序占用内存过高时,系统会发出警告。为了更好的用户体验,ios引入了内...

  • 鱼人学习小计(五)

    算法题:1)数组与链表区别数组在内存中是连续存放的,每个元素都有相同的内存空间,可以通过下标迅速的找到数组中的元素...

  • 鱼人学习小计(一)

    本想趁闲赋在家的时候,赶一个ios直播类型的项目,从前期使用第三方播放sdk拉流,与熟络封装AVFoundatio...

  • 鱼人学习小计 (三)

    runtime:runtime又叫运行时,是一套底层c语言api。我们常用的oc语言,编译器会自动转换为运行时语言...

  • 鱼人学习小计(二)

    最近项目的事略为耽搁,迎来了两个大公司的面试,就在下周,几天的准备时间当然要好好利用起来,把ios的基础更底层的温...

  • 亲子日记 262

    2018.9.13 星期四 晴 学习的动力来自自己的坚持,最近一宁对学习方面已经有自己的小计划目标,要想学习成绩优...

  • 鱼人闹剧(四)

    于是家长们纷纷让孩子退学,孩子们哪里舍得离开呢,而且是去一个未知的学校。和家长们闹起了矛盾。但家长们有杀手锏,就是...

  • dart学习小计

    https://www.dartcn.com/guides/language/language-tour#%E4%...

  • systemd 学习小计

    systemd 中得命令必须使用绝对路径参考:http://www.jinbuguo.com/systemd/sy...

  • pandas 学习小计

    1.今天有一个需求,两个几百万的数据集进行比较去重。找出差集。数据集A,B 找出A-B pd.read_csv('...

网友评论

      本文标题:鱼人学习小计(四)

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