首页 > 代码库 > 每日一结
每日一结
1.常量
<1>.const
const int a;
int const a;
const int *a;
int *const a;
int const *a const;
前两个的作用一样,a是一个常整型数;第三个意味着a是一个指向常整型数的指针(整型数是不可修改的,但指针可以);第四个a是一个指向整型数的常指针(指针指向的整型数十可以修改的,但指针是不可修改的);最后一个意味着a是一个指向常整型数的常指针
在一个函数声明中,const可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值;
对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;
2.static 和 extern
使用static意味着这个常量只能在该文件中可用
想定义一个全局常量,应使用extern
3.iOS7中Objective-C和Foundation的新特性
<1>Modules(模块)
Modules封装框架更加清洁,不再需要预处理逐行地用文件所有内容替换#import指令。相反,一个模块包含了一个框架到自包含的块中,就像PCH文件预编译的方式一样提升了编译速度。并且你不需要再PCH文件中声明你要用到哪些框架;
一个Modules不仅告诉编译器哪些头文件组成了Modules,而且还告诉编译器什么需要链接。不用你手动的链接框架;
使用方法:在项目的Build Settings通过搜索Modules找到这个选项,改变Enable Modules选项为YES.所有的新工程都是默认开启这个功能的。Link FrameworksAutomatically选项可以用来开启或者关闭自动链接框架的功能;
例:@import UIKit;
@import UIKit.UIView;
警告:Xcode5的Modules还不支持你自己的或者第三方的框架
<2>新的返回类型-instancetype
仅仅被用作Objective-C方法的返回类型和对编译器的一个暗示,暗示方法的返回类型将是这个方法属于的类的实例;
<3>新的Foundations
Base64的编码和解码;
NSTimer 新增容忍属性;
新增 NSProgress框架;
NSArray 新增-(id)firstObject;
3,nil和Nil
nil是对象,Nil是类