iOS之const与宏定义的区别

宏定义的常见用法:定义一段代码抽成宏,或指定字符串抽成宏
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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容