iOS定义常量的最佳实践
2015-10-23 22:25
459 查看
我之前写过一篇博客《iOS项目中全局变量的定义与使用》,讲的是怎么在iOS项目中定义全局变量。而全局变量和常量是项目中最常用到的两种类型的变量。对于有代码洁癖的程序猿来说,一般是不允许在编码中直接出现数字、字符串的。这篇博客我们来谈谈在iOS中声明常量。并从最一般的声明方法,最后推到最佳实践。
【实践1】:直接在类中声明const常量
如果我想再次对这个常量进行赋值,会出现如下错误提示:只读变量不能被赋值,这表示我们声明的的确是一个常量。
。
问题:在viewDidLoad()方法中声明了一个常量,那就只能在这个方法中使用这个常量了。。。是不是很悲剧。
【实践2】:在某个类中声明一个全局的const常量
在一个类的实现文件中定义一个const常量,那么这个常量就可以在这个类中都可以用。不再局限于一个方法了。
【实践3】类中使用#define定义常量
在使用#define宏定义的时候,在程序中会进行完全的文本替换。个人并不是特别常用#define。
【最佳实践】新建类存放所有的常量
(1)新建Constant类,在Constant.h中实现如下:
(2)在Constant.m中实现如下:
(3)主文件中实现如下:
(4)输出结果如下:
。
这个我觉得是声明一个常量的最佳实现,也可以符合实际项目的需要。注意的是:在需要使用到定义的常量时,需要导入常量类的头文件。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
【实践1】:直接在类中声明const常量
- (void)viewDidLoad { [super viewDidLoad]; NSString* const initString = @"myName"; NSLog(@"%@",initString); }
如果我想再次对这个常量进行赋值,会出现如下错误提示:只读变量不能被赋值,这表示我们声明的的确是一个常量。
。
问题:在viewDidLoad()方法中声明了一个常量,那就只能在这个方法中使用这个常量了。。。是不是很悲剧。
【实践2】:在某个类中声明一个全局的const常量
#import "ViewController.h" NSString* const initString = @"myName"; @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%@",initString); } @end
在一个类的实现文件中定义一个const常量,那么这个常量就可以在这个类中都可以用。不再局限于一个方法了。
【实践3】类中使用#define定义常量
#import "ViewController.h" # define ALL_NAME @"chenyufeng" # define ALL_AGE 23 @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%@",ALL_NAME); NSLog(@"%d",ALL_AGE); } @end
在使用#define宏定义的时候,在程序中会进行完全的文本替换。个人并不是特别常用#define。
【最佳实践】新建类存放所有的常量
(1)新建Constant类,在Constant.h中实现如下:
#import <Foundation/Foundation.h> extern NSString* const url; #define URL @"http://www.baidu.com" @interface Constant : NSObject @end
(2)在Constant.m中实现如下:
#import "Constant.h" NSString* const url = @"http://www.google.com"; @implementation Constant @end
(3)主文件中实现如下:
#import "ViewController.h" #import "Constant.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"%@",url); NSLog(@"%@",URL); } @end
(4)输出结果如下:
。
这个我觉得是声明一个常量的最佳实现,也可以符合实际项目的需要。注意的是:在需要使用到定义的常量时,需要导入常量类的头文件。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
相关文章推荐
- iOS中 常用的mac终端指令汇总 技术分享
- iOS中 常用的mac终端指令汇总 技术分享
- IOS TextField设置大全
- iOS项目问题汇总<三>
- iOS体会篇 大学编程到公司的过程
- iOS体会篇 大学编程到公司的过程
- iOS切换Statusbar黑白状态
- 第一个iOS应用程序开发
- ios:开始判断星期几
- iOS消息传递机制
- 蓝懿ios 技术内容和心得 10。23
- IOS-自定义cell与控件布局
- ios学习之cocoa的大致了解
- iOS-响应上下左右滑动手势
- iOS开发中使用宏定义提高开发效率
- iOS宏定义的使用与规范
- 简单异或加密代码--IOS版(广点通)
- ios开发系列之Get与Post方式请求数据
- iOS中表示空的区别
- iOS开发>学无止境 - 禁止横屏