ios-const

来源:互联网 发布:有关数据库的书 编辑:程序博客网 时间:2024/05/11 03:54

简单的说下const的应用吧,其实我们如果想让一个变量只能在初始化赋值的时候可以改的话我们可以这么做,在这样定义int型变量的时候使其变成常量const在前面还是在后面其实是一样的。

const int a =10int const a =10
int const * a和 const int *a 其实是一样的,因为const都在*前面

如果我们使用int * const p=&b 这个就是const修饰的是p3,p3是个常量,p3就不能再指向其他变量了,但是我们通过指针去修改b的值,*b=20

int const *a 修饰的是*a,所以我们可以改变a指针的指向,但是不能通过*a去修改变量的值,因为const修饰的是*a

我们在什么时候会去使用const int *p,其实就是在我们通过比如说想让一个函数去监控一个值的变化,而又不想在这个函数中去修改这个值,其实我们就可以让参数为const int *p

这样就代表无法通过*p来进行修改这个值

我们在OC中定义一个不能修改的字符串常量可以这么定义NSString * const name=@"kkkk"; 表示name这个字符串无法进行修改

在OC中我们定义常量最好都用const int Age=20,这样来进行,因为如果我们使用的是#define Age 20用宏来定义的话,我们在使用的时候其实都是在编译之前的时候帮我们把Age,替换成了20,使用大量的宏会让编译的时间变久,毕竟都要去做替换,所以我们最好使用不能修改的常量来定义。下面这个肯定不能用常量来定义,因为是运行时才能确定这个方法,而不是在编译之前。

#define ZXColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]
我们想要让所有的文件都能使用常量的话,可以把定义常量的操作放在.m文件中,然后声明常量的操作放在一个.h文件中,然后在pch文件中包含.h文件就可以了