宏定义的常见用法:定义一段代码
抽成宏,或指定字符串
抽成宏
const(常量
):当有字符串常量的时候,苹果推荐
我们使用const
,苹果经常把常用的字符串定义成const
宏定义与const的区别:
- 编译时刻不同,宏属于
预编译
,const属于编译时刻
- 编译检查:宏
不做检查
,不会
报编译错误
,只是替换,const会做编译检查
,会
报编译错误
。 -
宏
能定义一些函数、方法
,const不能
,多个宏对于编译会相对时间较长,影响开发效率
从以上三点不难看出,在开发中如果定义一个常量字符串
就用const
,定义一段代码
就用宏
。
举例如下:
定义服务器地址
:
用宏
定义如下:#define CLServerHttp @"http://47.93.129.128:40004/"
如果用const
来定义,我们经常会单独抽一个类
来管理一些全局的
变量或常量。
在NetManger.h中声明
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NetManger : NSObject
extern NSString*const CLServerHttp;
@end
NS_ASSUME_NONNULL_END
在NetManger.m中实现
#import "NetManger.h"
NSString * const CLServerHttp = @"http://47.93.129.128:40004/";
@implementation NetManger
@end
在ViewController.m中实现
#import "ViewController.h"
#import "NetManger.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"----%@",CLServerHttp);
//输出----http://47.93.129.128:40004/
// Do any additional setup after loading the view.
}
@end
网友评论