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];

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

     

  • 相关阅读:
    天梯赛5-12 愿天下有情人都是失散多年的兄妹 【dfs】
    poj2718 Smallest Difference【贪心】
    HDU problem 5635 LCP Array【思维】
    codeforces 782C Andryusha and Colored Balloons【构造】
    HDU 4278 Faulty Odometer【进制转换】
    codeforces B. The Meeting Place Cannot Be Changed【二分】
    POJ 3264 Balanced Lineup 【线段树】
    HDU 1850
    CodeForces-714C
    HDU Problem 1247 Hat's Words 【字典树】
  • 原文地址:https://www.cnblogs.com/odileye/p/4921665.html
Copyright © 2011-2022 走看看