zoukankan      html  css  js  c++  java
  • objective-c(四)内存管理

      关于objective-c的内存管理

      在使用中,在新版的ios编程里已经可以不用非常关注内存的释放与处理了。但是需要了解。在objective-c中,创建的变量有计数的概念。当init之后计数为1,通过retarn关键字来增加技术。使用release关键字来减少计数。当计数为0时释放内存。

      上面就是比较简单的使用计数器的方法来手动管理内存。在使用时。现在有ARC来自动管理内存设置。虽然现在支持的还不是特别完全,但是已经可以正常的编程了。如果在某些地方一定要使用手动管理内存。开议在target->build phases->compile sources中的.m文件将-fno-objc-arc填入。哪个.m文件就变成了可以手动管理内存的文件。

      objective-c的初始化方法

      如果你使用手动的内存管理,那么就需要手动的做一些事情,在初始化过后。需要调用dealloc方法来释放内存。在释放内存的方法中不仅要调用方法的release方法。之后还要将成员变量设置成nilnil相当于java中的null。因为objective-c使用的是指针的执行,需要内存被释放,但是成员变量的指向如果不做设置。那么还会记录这个指针的地址,但是期间其他数据很有可能会马上写入到已经被释放了的内存中,如果这个时候再次调用这个成员变量。可能造成无法调用,或者调用失效。这种时候的指针也被称作野指针。

      

  • 相关阅读:
    好久没有上来,发布几个日志类
    这些天很忙,写一个类似防火墙的东西在WINSOCK2 SPI上做DLL,终于把问题解决了,现提供完整C++项目下载
    Flask学习之搭建环境
    年底总结前序
    3月13日的合照一张
    我也是个张三
    读《广州的一场春梦》有感
    四期合照,纪念小杨离开
    深夜的伤感
    随感,未写先累
  • 原文地址:https://www.cnblogs.com/imtodd/p/6626894.html
Copyright © 2011-2022 走看看