swift小技巧之Swift中全局常量的书写
Objective-C
在OC中经常会用到一些静态常量。 全局变量的声明有两种方式:
- 一种是在.h文件用
extern声明,然后在.m文件定义,在调用这个全局变量的文件需要引入该文件的.h文件,例如:
/** .h文件 */ extern NSString * const string; /** .m文件 */ NSString * const string = @"全局变量";
- 另一种方式是在.m文件定义,在需要用到的地方通过
extern引入,不需要引入头文件,例如:
/** .m文件 */ NSString * const string = @"全局变量"; /** 用到的地方 */ extern NSString * const string;
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() } }
print(Key.NotificationKey.Welcome)
print(Key.Path.Documents)
print(Key.Path.Tmp)
- 例如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文件要优雅的多
浙公网安备 33010602011771号