在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
}