zoukankan      html  css  js  c++  java
  • #在蓝懿学习iOS的日子#Day7

    今天学习内存管理的内容,比较抽象,应用的不是很多,但还是要理解,那现在我就来回顾一下,学习的内容吧!

    一、id:任意对象

    self:调用自身类

    super:引用父类本身的属性

    二、内存管理

    ARC:自动内存管理

    MRC:手动内存管理

    1、内存计数机制:内存计数表示当前对象被引用的次数,如果引用次数为0 则对象会从内存中释放掉

    retain会对内存计数+1

    release会对内存计数-1

     

    2、retain(strong)assign(weak)copy对set方法的影响:

    retain:两件事1.把原来的释放 2把新的retain+1——————现在使用的是strong

    assign:直接赋值 --------系统默认的weak(可以不用写)

    copy:调用copy并赋值

    //声明属性时,要添加(关键字)

    //对象

    @property(nonatomic, strong) NSMutableArray *myArray;

    //基本数据类型

    @property(nonatomic)int x;

     

    3、dealloc方法 当对象内存计数为0时会释放内存 释放之前会调用此方法 在arc中用来验证对象没有有释放掉

    //当内存计数器为0的时候 会释放到对象 释放之前会调用此方法

    例:- (void)dealloc

    {

        //需要把所有的全局变量release

        //[_myArray release];

        

    }

    三、协议(即规则):只有遵循协议的才可以执行某种方法

    1、创建类在类的.h文件

    @protocol ManDelegate <NSObject>

    //@optional //非必须

    //@required  //必须的

    -(void)play;

     

    @end

     

    @interfaceMan : NSObject

     

     

     

    -(void)playWithObject:(id<ManDelegate>)obj;

    @end

    2、在类的.M文件

    -(void)playWithObject:(id<ManDelegate>)obj{

        NSLog(@"大男人在玩");

        [obj play];

    }

    3、在ViewController.M引入类的头文件

     //声明对象

        Man * m =[[Man alloc]init];

        Boy*b =[[Boy alloc]init];

        Girl *g =[[Girl alloc]init];

        //使用方法

        [m playWithObject:b];

        [m playWithObject:g];

    好啦,今天就总结到这里,大家一起共勉,加油吧!

     

  • 相关阅读:
    MFC中CTREECTRL的checkbox问题
    GLOG的使用说明
    安装Electron
    WIN32中DLL的建立
    MFC动态创建菜单
    C++迭代器
    VIM常用命令
    层次遍历二叉树
    sql存储过程中加引号
    Apache Tomcat 绿色版安装Service(服务)
  • 原文地址:https://www.cnblogs.com/odileye/p/4921665.html
Copyright © 2011-2022 走看看