搜索
您的当前位置:首页正文

OC项目逐渐向swift转移--踩坑淌雷- 替换宏定义 -1

来源:二三娱乐

在OC中常用的宏定义 往往用于动态计算 如下:

#define identityId0                         16//补货员
#define identityId1                         5050//合伙人
#define identityId2                         1050//维修工程师
#define kCurrentIdentityId                   @"kCurrentIdentityId"
#define CurrentIdentityId                   [[NSUserDefaults standardUserDefaults] integerForKey:kCurrentIdentityId]
#define isIdentityId0                       CurrentIdentityId == identityId0

在swift中尝试同样的功能

let identityId0 =                         16//补货员
let identityId1 =                        5050//合伙人
let identityId2 =                        1050//维修工程师
var CurrentIdentityId =                  NSUserDefaults.standardUserDefaults().integerForKey(kCurrentIdentityId)
var isIdentityId0 =                      CurrentIdentityId == identityId0
------上面的方式是错误的-----只赋值一次,不会参与动态计算 需采用如下方式: 

var CurrentIdentityId :Int {
    return NSUserDefaults.standardUserDefaults().integerForKey(kCurrentIdentityId)
}
var isIdentityId0 :Bool {
    return CurrentIdentityId == identityId0
}

Top