对于自定义类,以下工作正常。但是我收到了我认为特定于NSUserDefaults的错误
class NSUserDefaultsManager:NSObject {
struct Static {
static var udefaults = NSUserDefaults.standardUserDefaults()
}
class var udefaults: [NSUserDefaults] {
get { return Static. udefaults }
set { Static. udefaults = newValue }
}
}
在get
行上,出现此错误:
' NSUserDefaults的'与' AnyObject'
不同
在set
行,我明白了:
' NSArray的'不是NSUserDefaults'
的子类型
目标是访问此类NSUserDefaults.udefaults
之类的udefaults。我是否需要为NSUserDefaults创建属性单例并像NSUserDefaults.instance()那样访问它.udefaults?
答案 0 :(得分:-1)
这似乎是不可能的。您要做的是创建NSUserDefaults的扩展。执行此操作的代码如下所示:
extension NSUserDefaults
{
static let udefaults = NSUserDefaults.standardUserDefaults()
}
然而,Xcode抱怨以下错误消息:
扩展程序可能不包含存储的属性。
<强>更新强>
以下代码编译没有任何语法错误,但它崩溃了Xcode: - )
extension NSUserDefaults
{
class var shared : NSUserDefaults {
struct Static {
static let instance : NSUserDefaults = NSUserDefaults.standardUserDefaults()
}
return Static.instance
}
}
var qq = NSUserDefaults.shared
错误消息是&#34;执行被中断,原因是SIGABRT。&#34;