宏定义的常见用法:定义一段代码抽成宏,或指定字符串抽成宏
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