宏定義的常見用法:定義一段代碼
抽成宏尤筐,或指定字符串
抽成宏
const(常量
):當(dāng)有字符串常量的時(shí)候,蘋果推薦
我們使用const
洞就,蘋果經(jīng)常把常用的字符串定義成const
宏定義與const的區(qū)別:
- 編譯時(shí)刻不同盆繁,宏屬于
預(yù)編譯
,const屬于編譯時(shí)刻
- 編譯檢查:宏
不做檢查
奖磁,不會(huì)
報(bào)編譯錯(cuò)誤
改基,只是替換,const會(huì)做編譯檢查
咖为,會(huì)
報(bào)編譯錯(cuò)誤
秕狰。 -
宏
能定義一些函數(shù)、方法
躁染,const不能
鸣哀,多個(gè)宏對(duì)于編譯會(huì)相對(duì)時(shí)間較長(zhǎng),影響開發(fā)效率
從以上三點(diǎn)不難看出吞彤,在開發(fā)中如果定義一個(gè)常量字符串
就用const
我衬,定義一段代碼
就用宏
叹放。
舉例如下:
定義服務(wù)器地址
:
用宏
定義如下:#define CLServerHttp @"http://47.93.129.128:40004/"
如果用const
來(lái)定義,我們經(jīng)常會(huì)單獨(dú)抽一個(gè)類
來(lái)管理一些全局的
變量或常量挠羔。
在NetManger.h中聲明
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface NetManger : NSObject
extern NSString*const CLServerHttp;
@end
NS_ASSUME_NONNULL_END
在NetManger.m中實(shí)現(xiàn)
#import "NetManger.h"
NSString * const CLServerHttp = @"http://47.93.129.128:40004/";
@implementation NetManger
@end
在ViewController.m中實(shí)現(xiàn)
#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