Objective-C
在OC中经常会用到一些静态常量。
比如
static NSString *const tableviewCellIdentifer = @"tableviewCellIdentifer";```
使用的时候
extern NSString *tableviewCellIdentifer;```
Swift
在Swift中,我们可以利用Struct
来实现全局常量。
如
struct Constants {
static let someNotification = "TEST"
}```
在使用的时候就可以直接点出来。
print(Constants.someNotification)```
在具体使用中Struct
也可以这样:
struct Key {
struct NotificationKey {
static let Welcome = "kWelcomeNotif"
}
struct Path {
static let Documents = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
static let Tmp = NSTemporaryDirectory()
}
}```
例如AppColor类中,将一些基本设置写好,在使用的时候可以直接调用
struct AppColor {
private struct Alphas {
static let Opaque = CGFloat(1)
static let SemiOpaque = CGFloat(0.8)
static let SemiTransparent = CGFloat(0.5)
static let Transparent = CGFloat(0.3)
}
static let appPrimaryColor = UIColor.white.withAlphaComponent(Alphas.SemiOpaque)
static let appSecondaryColor = UIColor.blue.withAlphaComponent(Alphas.Opaque)
struct TextColors {
static let Error = AppColor.appSecondaryColor
static let Success = UIColor(red: 0.1303, green: 0.9915, blue: 0.0233, alpha: Alphas.Opaque)
}
struct TabBarColors{
static let Selected = UIColor.white
static let NotSelected = UIColor.black
}
struct OverlayColor {
static let SemiTransparentBlack = UIColor.black.withAlphaComponent(Alphas.Transparent)
static let SemiOpaque = UIColor.black.withAlphaComponent(Alphas.SemiOpaque)
static let demoOverlay = UIColor.black.withAlphaComponent(0.6)
}
}```
Swift提供的Struct
的用法与通过点语法访问属性用法一致,方便的是不需要再去声明创建一个类,并且可以将 Struct
分类归类的写在一个地方。这无疑要比OC中大段大段的Prifix文件要优雅的多。
网友评论