zoukankan      html  css  js  c++  java
  • 2015年08月19日09:54:45

    对象指针:1,对象指针通过操作其指向的内存完成具体的功能

    -对象指针指向nil时,称此对象为空对象

    -nil为对象指针的默认值

    -空对象无任何功能与作用

    2,获取对象指针指向的内存地址

    -通过alloc或便利构造器获取

    -通过方法获取

    *局部对象指针

    -作用域以大括号为界

    -{

            id obj;

      }

    *全局对象指针

    -手动声明的成员变量

    -属性声明的成员变量

    *局部对象指针

    -一般情况下使用(默认)

    -临时变量

    *全局对象指针

    -推荐全部使用属性

    -一个对象为另一个对象的组成部分

    -整个对象都需要使用的公用数据

    -对象的对外数据接口

    *强引用(默认)

    -通过__strong或无标识的对象指针

    -内存被该类型对象指针使用时不会释放

    *归零弱引用

    -通过__weak标识的对象指针

    -内存被该类型对象指针使用时,随时可能释放

    -内存释放后,使用该内存的对象指针被置nil

    *弱引用

    -通过__unsafe__unretain标识的对象指针

    -内存随时释放,且对象指针不被置nil

    *自动释放池(可以调节自动释放时间)

    ---@autoreleasepool{

           //池内

    }

    本质为一块代码区域,以大括号为界

    *自动释放类型对象

    -通过__autoreleasing标识的对象指针

    -被该对象指针使用过或使用中的内存,出自动释放池即释放,无论对象指针是否存在。

    -通过与自动释放池配合和延迟或提前释放内存

    *内存管理规范

    *一般情况

    -除特殊情况外,都是一般情况

    -使用strong类型

    *特殊类型

    -相互引用//强引用循环

    -引用链闭环//强引用循环

    -通过方法返回创建的额内存地址

    -在循环内通过方法创建大量对象

    ————————当对象释放时,走dealloc方法

    //便利构造器

    +(instancetype)student

    {

     __autoreleasing   Student *s = [[Student alloc]init];

    return s;

    }如果通过一个方法返回一块儿内存,那这块儿内存必须是被autoreleasing使用过的对象

    基本数据类型bool型,int型,double型,用assign

     
  • 相关阅读:
    BWList of logged on users in the Portal
    BASIS About Profile
    B/S C/S 打印
    程序员得学习观各种好书推荐
    ORACLE面试测试题目
    oracle经典20题(参考答案)
    程序员得学习观各种好书推荐
    Oracle笔试题
    Oracle笔试题
    Oracle里面常用的数据字典有哪些?
  • 原文地址:https://www.cnblogs.com/quwujin/p/4741364.html
Copyright © 2011-2022 走看看