美文网首页
OC中内存管理机制

OC中内存管理机制

作者: anyurchao | 来源:发表于2015-12-18 21:00 被阅读58次
    一、内存管理:

    1.内存回收:dealloc只是把内存使用权释放,内容不清除,可能出现野指针的情况
    2.memSet:将内存初始化,即把内存的内容清楚
    3.ui进行交互的时候,系统会在交互过程中自动加一个自动释放池,所以有时候滑动tableView时程序会崩溃,要用属性赋值
    4.在子线程中系统不会自动添加自动释放池,如果子线程中用了很多类方法,我们需要自己手动添加自动释放池
    5.dealloc中不需要对assign修饰的属性进行释放
    6.给一个可变的字符串用copy拷贝一份时,拷贝的字符串就是不可变的字符串了,并且是深拷贝;
    7.给一个不可变的字符串用mutableCopy拷贝一份副本时,拷贝的字符串是可变的,并且是深拷贝;
    8.要进行拷贝的类必须遵循NSCopying协议,并且重写copyWithZone这个方法,是深拷贝还是浅拷贝与方法无关,只与方法的实现内容有关;

    二、集合的内存管理 :深拷贝,浅拷贝,真正的深拷贝(归档)

    1.当一个可变的集合,使用mutableCopy时都会产生一个新的对象,但集合的元素是一个浅拷贝;
    2.真正的深拷贝:即集合中的元素和集合都发生深拷贝,则要使用归档;
    3.代理中如果是单一持有时,代理对象用assignretain一样;在UITableView的代理中设置assign,防止产生循环引用的情况;
    4.autoreleasepoolrunloop的一种管理方式,先接收到release消息的对象后释放,像栈的管理形式;
    5.iPhone的每个应用的内存最高为120M

    相关文章

      网友评论

          本文标题:OC中内存管理机制

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