1 知識點(diǎn)回顧
>1 block
<1>定義:返回值 參數(shù) 標(biāo)識符 ?有參有返回值block: 返回值 (^標(biāo)示符)(參數(shù)類型1,參數(shù)類型2);
<2>內(nèi)容:^(形參1,形參2){代碼塊}
有參有返回值block定義: int (^add)(int,int) = ^(int a,int b){return a + b;};
<3>執(zhí)行:標(biāo)示符(實(shí)參1,實(shí)參2)
有參有返回值block調(diào)用: int a = 10; int b = 20;int c = add(a,b);
<4> block使用注意
1>定義屬性時使用copy
2>block中應(yīng)用self時用__weak修飾,防止循環(huán)引用
3>GCD和NSOperation中的block可以使用block,因?yàn)榫€程中任務(wù)執(zhí)行過后會block會自動 ? ? ? ? ? ? ? 銷毀.
<5> block與變量的區(qū)別:block是代碼塊,且允許有返回值;
block與函數(shù)區(qū)別:block可以作為參數(shù)傳遞
>2 NULL和nil的區(qū)別
<1>NULL是C語言中的內(nèi)容,不允許給NULL發(fā)送消息,OC中若有**修飾,一般使用NULL
<2>nil是OC對象,可以給nil發(fā)送任何消息,但是沒有響應(yīng).數(shù)組和字典中的對象不能使用nil來存儲,可以使用NSNull來存儲;
>3 token的應(yīng)用
<1>服務(wù)器端通過token值來判斷客戶端用戶是否登錄,當(dāng)客戶端登錄成功后,會服務(wù)器端生成標(biāo)識用戶的token值,然后將token值返回給客戶端,并作永久化保存在本地沙盒中,當(dāng)客戶端再次發(fā)送請求時,服務(wù)器端可以通過發(fā)送的token值來判斷用戶登錄情況.
<2>對于支付/購物類App,token的時效期較短,而新聞/聊天/閱讀類App,token的時效期較長;
<3>設(shè)備唯一性的登錄判斷:每次登錄均生成新的token值.
4> GCD的應(yīng)用
<1>開啟線程,取代NSThread;
<2>將異步任務(wù)添加到主隊(duì)列,控制任務(wù)的執(zhí)行順序.