如何获得AppDelegate的参考

时间:2016-11-23 11:22:17

标签: ios swift3 xcode8

我的问题是我的常量类几乎在应用程序的每个类中使用,所以我通过它想要访问它们来在AppDelegate中创建它的对象。我不想创建对象每次每个地方的常数。最好的方法是什么,请建议。

class AppDelegate: UIResponder, UIApplicationDelegate {
 public var constants = Constants()
//created object once in app delegate
}

class Utility
{
let delegate = UIApplication.shared.delegate as! AppDelegate //getting     null here
let constants =  delegate. constants
}`

2 个答案:

答案 0 :(得分:0)

这应该可以为AppDelegate创建一个对象:

let appDelegate = UIApplication.shared.delegate as! AppDelegate

您可能想要创建一个单例类。

class MySingleton : NSObject
{
  class var sharedInstance :MySingleton
  {
    struct Singleton
    {
        static let instance = MySingleton()
    }

    return Singleton.instance
  }

  final let myVar = "String"
}

然后通过创建对象来访问属性:

let appSingleton = MySingleton.sharedInstance
appSingleton.myVar

这是你想要做的吗?

答案 1 :(得分:0)

你可能不应该使用单例,因为你只是使用类作为字符串。相反,你应该采取这样的方式:

struct LocalizationConstants {
    static let settings = NSLocalizedString("Settings", comment: "")
    static let main = NSLocalizedString("Main", comment: "")
    static let someString = "value"
}
相关问题