const

作者: Deyear | 来源:发表于2020-11-24 07:35 被阅读0次

基础不扎实加上文科出生的我,对自己的技术很是不自信,但是我爱学习,努力成长

const 众所周知,这是常量修饰,怎么理解和使用呢?

需要结合对比才可以看得出来

const 宏(define)与常量(const)

一、

define 定义任何code块是全局可以使用的宏,

const 也是可以定义全局可以使用的常量

二、

define  不需要指定类型,只是code块的替换例如下面

 #define  Main_Width    ([[UIScreen mainScreen] bounds].size.width)

 #define BaseImage            ([UIImage imageNamed:@"logo"])

const 可以指定类型,在编译的时候就会做类型的检查 如下

constNSString*    myName=@"我就是测试";

三、

刚刚入行和不注重优化的时候,我就是认为两个都是一样的,反正接触的都是轻量级别的项目,统一使用define。但是深入理解一点,他们是有区别的。

define:虽然全局使用起来非常好用,尤其放在全局的文件里面,几乎可以整个项目都可以使用,例如全局文件PCH,但是大量的宏会导致二进制文件变大,影响启动速度

const:在内存上是常量,共用一块内存空间,也就是不管在文件中使用多少次,内存是不变的,而且apple官网也是推荐多使用const常量

const 基本使用

const NSString *    myName = @"我就是测试能不能全局使用"; 

可以在任意的类里面进行申明const  如在Person类里面任意申明一个myName 如下图

在 AppDelegate 不需要#import "Person.h" 就可以调用调用myName


const 位置

当只是全局调用,不需要改变值的时候,以下三种都是一样可以获得常量值

当const在  * 右边的时候,常量是不被修改的,如下三张图

相关文章

网友评论

      本文标题:const

      本文链接:https://www.haomeiwen.com/subject/qfvesftx.html