如何在swift4中创建一个公共属性

时间:2017-11-11 10:07:46

标签: ios iphone swift

我需要在项目中使用公共属性,以便我可以在应用程序中使用或共享它。 我尝试了很多解决方案,但没有奏效。 我认为它可以使许多事情变得简单和可重复使用。

3 个答案:

答案 0 :(得分:3)

您可以使用扩展程序 如

中所述

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Expressions.html#//apple_ref/doc/uid/TP40014097-CH32-ID383

您可以更改以前定义的类属性

例如

extension UIColor {

    class var customGreen: UIColor {
        let darkGreen = 0x008110
        return UIColor.rgb(fromHex: darkGreen)
    }
}

答案 1 :(得分:1)

使用iOS设计模式“Singleton”
它只使用一个类的一个引用,并且相同的属性将反映在整个应用程序中使用它的位置。

参考:https://thatthinginswift.com/singletons/

答案 2 :(得分:1)

您可以通过声明公开structenum来创建轻量级“命名空间”。然后,只需添加您的static vars即可安全地共享它。 作为额外的好处,您可以免费获得线程安全性。 (静态存储属性初始值设定项是线程安全的。)

public enum SharedConstants {
    public static var id = "MyID"
    public static var hashCode = 12345678
}

顺便说一下,如果要增强现有类型, extensions 就很棒。类型扩展允许您在不修改其原始代码的情况下向类型添加新功能。 然而,如果您只需要一个共同的共享属性,扩展可能不是最佳选择。