1 知识点回顾
>1 block
<1>定义:返回值 参数 标识符 有参有返回值block: 返回值 (^标示符)(参数类型1,参数类型2);
<2>内容:^(形参1,形参2){代码块}
有参有返回值block定义: int (^add)(int,int) = ^(int a,int b){return a + b;};
<3>执行:标示符(实参1,实参2)
有参有返回值block调用: int a = 10; int b = 20;int c = add(a,b);
<4> block使用注意
1>定义属性时使用copy
2>block中应用self时用__weak修饰,防止循环引用
3>GCD和NSOperation中的block可以使用block,因为线程中任务执行过后会block会自动 销毁.
<5> block与变量的区别:block是代码块,且允许有返回值;
block与函数区别:block可以作为参数传递
>2 NULL和nil的区别
<1>NULL是C语言中的内容,不允许给NULL发送消息,OC中若有**修饰,一般使用NULL
<2>nil是OC对象,可以给nil发送任何消息,但是没有响应.数组和字典中的对象不能使用nil来存储,可以使用NSNull来存储;
>3 token的应用
<1>服务器端通过token值来判断客户端用户是否登录,当客户端登录成功后,会服务器端生成标识用户的token值,然后将token值返回给客户端,并作永久化保存在本地沙盒中,当客户端再次发送请求时,服务器端可以通过发送的token值来判断用户登录情况.
<2>对于支付/购物类App,token的时效期较短,而新闻/聊天/阅读类App,token的时效期较长;
<3>设备唯一性的登录判断:每次登录均生成新的token值.
4> GCD的应用
<1>开启线程,取代NSThread;
<2>将异步任务添加到主队列,控制任务的执行顺序.