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使用的是指针的执行,需要内存被释放,但是成员变量的指向如果不做设置。那么还会记录这个指针的地址,但是期间其他数据很有可能会马上写入到已经被释放了的内存中,如果这个时候再次调用这个成员变量。可能造成无法调用,或者调用失效。这种时候的指针也被称作野指针。

  

posted @ 2017-03-27 15:17  执行人间的意志  阅读(134)  评论(0编辑  收藏  举报