OC第六天 Block 陣列 級

2021-07-06 09:01:29 字數 1836 閱讀 2352

⼀、block語法

block:塊語法,本質上是匿名函式(沒有名稱的函式)

標準c⾥⾯沒有block,c語⾔的後期擴充套件版本,加⼊了匿名函 數。

c++、js、swift等語⾔,有類似語法,叫做閉包。

block語法和函式指標很相似。

匿名函式:沒有名稱的函式

int (^block)(int a,int b)= ^int (int a,int b)

// block

型別int (^)(int a,int b)

//    // block

名block

//    // block

值匿名的函式

並且型別與

block

型別相同

//    //

匿名函式是函式

其函式中定義的變數

存在棧區

即:^ 返回值型別 (引數列表) 其中 返回值型別 可以 省略。

⼆、block使⽤

int (^block1)(int x,int y) = ^(int x,int y);

int a = block1(32 , 34);//block的使⽤和函式指標的使⽤類似。

nslog(@「%d」,a);

列印結果:66

//    __block int num=1;

//    void(^addsum)(void) =^(void);

//    addsum();

區域性變數在block中要向上面在變數前加__block雙劃線block才能改全域性變數可以改

typedef int (^blocktype)(int x,int y) 原型別:int (^)(int x,int y) 新型別:blocktype

三、block實現陣列排序

//block

排序//

實現部分填寫

obj1

和obj2

關係//

實現原理

:陣列中兩個元素進行比較後返回值如果前面比後面大則交換到最後完成排序

// 能夠比較

字串nsnumber

// 語法糖

初始化nsnumber

型別方法

//    nsnumber *n2 = @11;

//先確定型別

// 根據型別確定公升序還是降序

//    nscomparisonresult (^mycompare) (id obj1,id obj2) = ^nscomparisonresult (id obj1,id obj2)else if([n1 compare:n2 ]==0)

//       

//        else

//       

//    };

// 需要什麼型別就給什麼型別 總結

block是蘋果最推崇的語法,ios4.0之後的類都新增了block⽀ 持。

block通常當引數來使⽤。 字⾯量是⼀種新型的寫法,能在⼀定程度上簡化**。

字⾯量建立的物件是便利構造的,且是不可變的。

// exchange

方法//    [array exchangeobjectatindex:j withobjectatindex:j+1];

// 切記

字面量使用的初始化方法

是類方法的初始化

// block

標誌^

託字元(

突起符)

//    // block

儲存的是

有特定功能的功能體

//    //

資料型別

+ 變數名

= 初值

四級閱讀第六天

深度閱讀 考2篇文章 每篇文章5道題 所佔分值20 142分 這一部分必須得滿分 你需要懂長難句,嚴格按照套路來 有可能長得像得卻不對 主要掌握6大題型 但是四六級主要是考一類題型 90 細節題 細節題就是考你精確定位,不需要讀懂整篇文章 記住不要先讀懂文章,我們的目的不是讀懂文章,而是做對題 不需...

第六天 風氣

第六天 風氣 答 人有了,就得定規矩,否則就是一幫烏合之眾,而不是團隊。1必須朝九晚五。嚴格控制員工手裡有辦公室鑰匙。下班必須準時鎖門,員工準時離開。斷公司外網。要加班必須上級主管簽字,更不准在辦公室留宿,洗澡。這一條很重要,不要讓程式設計師活得像個浪子,精神恍惚,口中神叨,鬍子拉碴,這都是浮動工作...

開課第六天

今天是開課第六天,老師上午沒有講課,講了一上午的題,下午又講了新知識,如下 1 順序結構 從上到下順序進行。2 分支結構 if boolean表示式 else switch 值 case 值 break case 值 break switch 執行流程,switch的值和case的值一一比較,如果一...