美文网首页
Swift中全局常量的书写(Struct)

Swift中全局常量的书写(Struct)

作者: _Choice_ | 来源:发表于2017-04-07 09:59 被阅读1381次

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文件要优雅的多。

相关文章

网友评论

      本文标题:Swift中全局常量的书写(Struct)

      本文链接:https://www.haomeiwen.com/subject/runcattx.html