第06天OC語(yǔ)言(04):ARC基本概念

  • 不要等到明天,明天太遙遠(yuǎn),今天就行動(dòng)。
須讀:看完該文章你能做什么?

ARC的特性,判斷原則,
什么是強(qiáng)指針,
什么是弱指針.

學(xué)習(xí)前:你必須會(huì)什么?(在這里我已經(jīng)默認(rèn)你具備C語(yǔ)言的基礎(chǔ)了)

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

注:(小白直接上手)

一、本章筆記
 一、
    ARC是一個(gè)編譯器特性(Xcode的功能),而不是運(yùn)行時(shí)特性
 二、
    ARC的判斷原則
    只要還有一個(gè)強(qiáng)指針變量 指向?qū)ο?對(duì)象就會(huì)保持在內(nèi)存中
        默認(rèn)情況下 所有指針變量都是強(qiáng)指針
        被__strong修飾的指針
    弱指針
        被__weak修飾的指針
        在開發(fā)中,千萬(wàn)不要使用一個(gè)弱指針 保存一個(gè)剛剛創(chuàng)建的對(duì)象 會(huì)被立即釋放

二、code
main.m
#pragma mark 04-ARC基本概念

#pragma mark - 代碼
#import <Foundation/Foundation.h>
#pragma mark 類
#import "Person.h"
#pragma mark - main函數(shù)
int main(int argc, const char * argv[])
{
    
//    Person *p = [[[Person alloc]init]autorelease];
    
    // 默認(rèn)情況下 所有的指針 都是強(qiáng)指針
//    Person *p = [[Person alloc]init];
    
    {
        // ARC的判斷準(zhǔn)則 : 只要沒(méi)有強(qiáng)指針指向?qū)ο? 對(duì)象就會(huì)釋放
        // 默認(rèn)情況下 所有的指針 都是強(qiáng)指針
//        Person *p = [[Person alloc]init];
//        p = nil;
        
//        __strong Person *p = [[Person alloc]init];
//        // 弱指針
//        __weak Person *p2 = p;
//        p = nil;
        
        // 在開發(fā)中,千萬(wàn)不要使用一個(gè)弱指針 保存一個(gè)剛剛創(chuàng)建的對(duì)象
        // 立即釋放
        __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是不可以調(diào)用 [super dealloc]; 這是監(jiān)測(cè)一個(gè)項(xiàng)目是不是ARC的辦法之一
}
@end

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容