美文网首页八天学会OC
第06天OC语言(04):ARC基本概念

第06天OC语言(04):ARC基本概念

作者: liyuhong | 来源:发表于2017-07-22 08:57 被阅读9次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    ARC的特性,判断原则,
    什么是强指针,
    什么是弱指针.

    学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

    适合所有人,不需要懂的什么

    注:(小白直接上手)

    一、本章笔记
     一、
        ARC是一个编译器特性(Xcode的功能),而不是运行时特性
     二、
        ARC的判断原则
        只要还有一个强指针变量 指向对象,对象就会保持在内存中
            默认情况下 所有指针变量都是强指针
            被__strong修饰的指针
        弱指针
            被__weak修饰的指针
            在开发中,千万不要使用一个弱指针 保存一个刚刚创建的对象 会被立即释放
    
    
    二、code
    main.m
    #pragma mark 04-ARC基本概念
    
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    #import "Person.h"
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
        
    //    Person *p = [[[Person alloc]init]autorelease];
        
        // 默认情况下 所有的指针 都是强指针
    //    Person *p = [[Person alloc]init];
        
        {
            // ARC的判断准则 : 只要没有强指针指向对象, 对象就会释放
            // 默认情况下 所有的指针 都是强指针
    //        Person *p = [[Person alloc]init];
    //        p = nil;
            
    //        __strong Person *p = [[Person alloc]init];
    //        // 弱指针
    //        __weak Person *p2 = p;
    //        p = nil;
            
            // 在开发中,千万不要使用一个弱指针 保存一个刚刚创建的对象
            // 立即释放
            __weak Person *p = [[Person alloc]init];
        }
        
        return 0;
    }
    
    
    Person
    >>>.h
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    - (void)dealloc
    {
         NSLog(@"%s",__func__);
        //    [super dealloc];  // ARC是不可以调用 [super dealloc]; 这是监测一个项目是不是ARC的办法之一
    }
    @end
    
    

    相关文章

      网友评论

        本文标题:第06天OC语言(04):ARC基本概念

        本文链接:https://www.haomeiwen.com/subject/kuuahxtx.html