我的问题是我的常量类几乎在应用程序的每个类中使用,所以我通过它想要访问它们来在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
}`
答案 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"
}