黑馬程式員-------Objective-C基礎4

來源:互聯網
上載者:User

標籤:

------ android培訓、java培訓、期待與您交流! ----------

1.強指標:預設的情況下所有的指標都是強指標,關鍵字__strong

弱指標:__week關鍵字修飾的指標

2.ARC:編譯器將自動在代碼合適的地方插入retain、release、autorelease

ARC的判斷準則,只要沒有強指標指向對象,對象就會被釋放

3.判斷是否是ARC

查看項目資訊;不能使用retain、release、autorelease、retainCount,在dealloc方法中不能使用[super dealloc]

正常建立對象,不用手動釋放對象

4.ARC下迴圈引入的問題,解決辦法一端使用強指標一端使用弱指標

[email protected]參數

strong強指標

week弱指標

6.__week Person *p=[[Person alloc]init];//不合理,對象一建立出來就被釋放掉,對象釋放掉後,ARC把指標設定為nil

7.分類的使用,擴充原來類的方法

#import "Student.h"@interface Student (study)-(void)run;@end
#import "Student+study.h"@implementation Student (study)-(void)run{    NSLog(@"study run");}@end

分類裡的方法跟原來的方法一樣使用,如果分類中和類中方法名一樣,優先調用分類的方法

8.非正式協議

所謂的非正式協議就是類別,即凡是NSObject或者其子類的類別,都是非正式協議

9.擴充-特殊的分類

分類名為空白,可以增加類的執行個體變數和方法,但是方法須在類本身的.m檔案中實現

變數和方法相當於私人

10.block的定義

int (^myblock)(int,int)=^(int a,int b ){   };

調用方式:

myblock(1,2);

可以再給myblock賦值

22.typedef bolck

typedef int (^Myblock)(int,int)=^(int a,int b ){   };

Myblock myblock1,myblock2;

23.block內可以訪問外部的變數

當定義block的時候,block會把外部變數的值以const的方式複製一份,放到block所在的記憶體中,不能修改

全域變數可以修改

外部變數加__block那麼block內部不再以const的方式拷貝,可以在block內部修改,再後面的代碼中,全部使用的是堆區空間

24.block的應用情境,把代碼塊作為參數傳遞

或者block作為傳回值

25.助記符 inlineBlock

26.protocol類似java的借口,但協議中的方法不是全部必須實現

步驟:

定義協議

@protocol 協議名稱<NSObject>

@end

採納協議

@interface Person:NSObject <協議1,協議2>

@end

實現協議的方法

當遵守了某個協議後,就有了這個協議中所有方法的聲明

協議還可以遵守其他的協議

OC不能繼承多個類,但是能夠遵守多個協議

27.protocol方法的修飾符

必須實現@required

選擇實現@optional

28.id類型後面加<協議名>表示只能賦值遵守了協議的對象

類名後面加<協議名>表示只能賦值遵守了協議的當前類的對象

29.協議代理模式

傳入的對象,代替當前類完成了某個功能,稱為代理模式

[email protected]

在.h檔案中用@protocol 協議名 代替import匯入協議

在.m檔案中匯入協議

在main檔案中再使用時匯入協議

 

黑馬程式員-------Objective-C基礎4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.