Effective Objective-C 2.0第四条:定义常量的方法
Effective Objective-C 2.0第四条:定义常量的方法
xiaobai1315 发表于1年前
Effective Objective-C 2.0第四条:定义常量的方法
  • 发表于 1年前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

    #define预处理命令
#define ABC 10 //将代码中出现 ABC 的地方 换成 10
缺点:1、定义的常量 ABC 没有类型信息;
     2、如果其他文件引入了这个头文件,如果有 ABC 也会被替换掉

   类型常量
static const NSInteger ABC 10 
定义一个类型为 NSInteger 的 变量 ABC ,值为10;

注意:
1、如果不打算公开某个类型常量,最好定义在实现文件里面。
2、变量一定要用 static const 声明,如果程序中修改了 static const 声明的变量,编译器会报错。
3、用 static const  声明的变量,编译器不会创建符号,会像#define预处理指令一样,把所有遇到的变量替换成常量。

如果需要在其他文件中使用类型常量,需要创建一个外界可见的常值变量,这类常量会放到全局符号表中。
定义方式: 
头文件中声明: extern NSString *const ABC;
实现文件定义: NSString *const ABC = @"value" 
常量定义应该从右向左解读,extern NSString *const ABC ————> ABC是一个常量, 这个常量是一个指针

实验了下,以下两种声明方式都可以
extern NSString *const ABC; 和  extern const NSString *ABC; 
NSString *const ABC = @"value"  和 const  NSString *ABC = @"value" 


定义其他常量
头文件中声明: extern const NSInteger ABC;
实现文件定义: const NSInteger const ABC = 10 

 

网上找了一个帖子,里面说的更详细

https://my.oschina.net/mexiaobai1315/blog/833172

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 3
博文 179
码字总数 71217
×
xiaobai1315
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: