zoukankan      html  css  js  c++  java
  • 内存管理之retain计数

      假如使用alloc、new开头或者包含copy函数的方法来创建一个对象,你就拥有了这个对象的所有权。(假如新对象的retain计数为1,并且不在自动释放池里,那么,你就有义务在不用这个对象的时候释放它)。传递对象所有权一些常见的方法是alloc(也经常会跟着init方法),copy和mutableCopy。

      通过其他方式创建的对象,就不一定拥有这个对象的所有权。(新对象的retain计数为1,放在自动释放池中,如果在自动释放池被清空之前,该对象被retain了,那就不会被释放了,否则,这个对象肯定会被释放)。

      加入并不拥有一个对象的所有权,却想让它一直存在,可发生retain消息来获得所有权(这步操作增加了retain计数)

      当有一个对象的所有权,但后面不再需要它时,可发生release和autorelease消息。(release消息立即减少retain计数;autorelease消息只在自动释放池被清空的时候引起release消息的发生。)

      只有对象还有一个所有者,这个对象就不会被释放。(当retain计数变为0时,就发送dealloc消息)

  • 相关阅读:
    SIMPLE QUERY几个原则
    [POI2014]DOO-Around the world
    Java 实现 蓝桥杯 历届试题 分糖果
    or小计
    luoguP1357 花园
    like小计
    [NOI2016]区间
    complex query几个原则
    AGC 018E.Sightseeing Plan——网格路径问题观止
    排查一般MySQL性能问题
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5191761.html
Copyright © 2011-2022 走看看