1.block資料型別
功能:block用來儲存一段**也叫**塊
特點 *block的標誌^
*block跟函式很像
*可以儲存**
*有返回值
*有形參
block要求掌握的東西:
1>如何定義block變數
int (^sumblock)(int,int);
void (^myblock)();
2>如何利用block封裝**
^(int a,int b);
^();
^; 3>block訪問外面變數
* block內部可以訪問外部的變數
*預設情況下,block內部不能修改外面的區域性變數
*給區域性變數加上__block關鍵字,這個區域性變數就可以在block內部修改
4>利用typedef定義block型別
typedef int (^myblock)(int,int);
//以後就可以利用myblock這種型別來定義block變數
myblock block;
myblock b1,b2;
b1 =^(int a, int b);
myblock b3 = ^(int a,int b);
2.protocol協議
1>protocol基本用途
>可以用來宣告一大堆方法(不能宣告成員變數)
>只要某個類遵守了這個協議,就相當於擁有了這個協議中的所有方法宣告
>只要父類遵守了某個協議,就相當於子類也遵守了
2>協議的定義
> @protocol協議名稱
方法宣告
@end
>如何遵守協議
類遵守協議
@inte***ce類名:父類
《協議名稱》
@end
協議遵守協議
乙個協議可以遵守多個協議,多個協議之間用逗號隔開,相當於擁有了其他協議中的方法宣告
@protocol協議名稱
《其他協議1,其他協議2>
@end
3>協議中方法宣告的關鍵字(用於與程式設計師之間的交流)
@required(預設):要求實現,如果沒實現,會發出警告
@optional這個方法不一定要實現
4>定義乙個變數的時候,限制這個變數儲存的物件遵守某個協議
類名《協議名稱》 *變數名;
id《協議名稱》變數名;
nsobject*obj;
idob2;
如果沒有遵守相應的協議,編譯器會警告
嚴重警告是整行劃線一定要修正
5>@property中宣告的屬性也可以做乙個遵守協議的限制
@property (nonatomic,strong)類名
《協議名稱》 *屬性名;
@property (nonatomic,strong) id《協議名稱》屬性名;
@property (nonatomic,strong) doh*dog;
@property (nonatomic,strong) iddog;
6>基協議
>nsobject是乙個基類,最根本最基本的類,任何其他類最終都要繼承它
nsobject協議中宣告很多基本方法
比如description,retain,release等
建議每個新的協議都要遵守nsobject
7>以後需要遵守的原則
以後想寫協議和類的時候,都寫@class和@protocol
實現的時候才寫#import。。。
8>什麼時候把協議寫在裡面,什麼時候寫在外面
>當協議只用於這個類的時候寫在裡面
>當協議用於多個類的時候,寫在外面
9>分類可以定義在單獨.h和.m檔案中,也可以定義在原來類中
>一般情況下,都是定義在單獨檔案中
>定義在原本類中的分類,只要求看懂語法
資料型別基礎資料型別
資料型別 基礎型別 除八大基礎型別其他的都是引用型資料型別 引用資料型別 基礎資料型別 整型 byte 佔乙個位元組,範圍 128 127 short 佔兩個位元組,範圍 32768 32767 int 最常用 佔四個位元組,範圍 2147483648 2147483647 long 佔八個位元組 ...
資料型別 基本資料型別和引用資料型別
一.分類 1,五種簡單資料型別 基本資料型別 number,string,boolean,null,undefined,新增symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。1 undefined 宣告的變...
SQL 資料型別 MySQL 資料型別
在 mysql 中,有三種主要的型別 文字 數字和日期 時間型別。資料型別 描述char size 儲存固定長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的長度。最多 255 個字元。varchar size 儲存可變長度的字串 可包含字母 數字以及特殊字元 在括號中指定字串的最大長度。...