一、bolck
(一)簡介
bolck和函式的相似性:(
1)可以儲存**(
2)有返回值(
3)有形參(
4)呼叫方式一樣。
(二)基本使用
(1)定義block變數
int (^sumblock)(int,int);//有引數,返回值型別為
int
void (^myblock)();
//無引數,返回值型別為空
(2)利用block
封裝**
(3)block訪問外部變數
1)block內部可以訪問外部變數;
2)預設情況下,block
內部不能修改外部的區域性變數
3)給區域性變數加上__block
關鍵字,則這個區域性變數可以在
block
內部進行修改。
(4)利用typedef
定義block型別(
和指向函式的指標很像)
typedef int(^myblock)(int ,int);
以後就可以利用這種型別來定義block
變數了。
myblock a,b;
a=^(int a,int b);
myblock b2=^(int n1,int n2);
二、protocol(協議)
(一)簡介
1.protocol:就乙個用途,用來宣告一大堆的方法(不能宣告成員變數),不能寫實現。
2.只要某個類遵守了這個協議,就擁有了這個協議中的所有方法宣告。
3.只要父類遵守了某個協議,那麼子類也遵守。
4.protocol宣告的方法可以讓任何類去實現,
protocol
就是協議。
5.oc不能繼承多個類(單繼承)但是能夠遵守多個協議。繼承
(:),遵守協議(
) 6.基協議:
是基協議,是最根本最基本的協議,其中宣告了很多最基本的方法。
7.協議可以遵守協議,乙個協議遵守了另乙個協議,就可以擁有另乙份協議中的方法宣告。
1.協議的定義
@protocol 協議名稱
//方法宣告列表
@end;
2.如何遵守協議
(1)類遵守協議
@protocol 類名:父類名
<
協議名稱
1,協議名稱
2>
@end
(2)協議遵守協議
@protocol 協議名稱
<
其他協議名稱
>
@end;
3.協議方法宣告中的關鍵字
(1)required (預設)要求實現,若沒有實現則警告但不報錯
(2)optional 不要求實現
4.定義變數時遵守協議的限制
類名<
協議名稱
> *
變數名
nsobject<.myprotocol> *obj;
id 協議名稱
>
變數名
id <.myprotocol> obj1;
5.property中宣告的屬性也可以做遵守協議的限制
@property (nonatomic ,strong ) 類名
<
協議名稱
> *
屬性名;
@property (nonatomic ,strong ) id協議名稱
>
屬性名;
iOS如何實現傳值 協議傳值
b a 傳值 步驟 1.寫協議 2.新增 屬性 3.呼叫 人 方法 4.給 人新增協議 5.設定 人 6.實現協議方法 例子 secondviewcontroller.h secondviewcontroller.h 協議傳值 created by 薩斯輩的呼喚 on 14 6 13.import ...
委託和協議
委託就是秘書委託是objc中使用非常頻繁的一種設計模式,它的實現與協議的使用是分不開的,讓我們看乙個綜合示例 小公司老闆日常的工作是管理公司 教導新員工 發工資與接 其中管理公司 教導新員工是老闆要親為的。而發工資與接 老闆希望招聘乙個秘書來幫忙,於是對秘書的要求就是要略懂出納發工資,要能幫助領導接...
介面和協議
介面和協議 1.cs 客戶端 伺服器 bs 瀏覽器 伺服器 bs與cs優缺點對比 cs響應速度快,安全性強,使用者體驗好,一般應用於區域網中,但是開發維護成本高 bs可以實現跨平台,客戶端零維護,但是個性化能力低,響應速度較慢。所以有些單位日常辦公應用bs,在實際生產中使用cs結構。2.http1....