我陷入了一个想在NSError扩展中声明属性的问题。 这是我的错误结构
struct CustomError {
var errorTitle: String?
var errorDescription: String?
var isClear: Bool?
}
这是我的扩展名
extension NSError {
var customeError:CustomError {
get {
return self.customeError
}
set {
self.customeError = newValue
}
}
}
在属性中设置自定义错误时,我遇到了严重的访问错误。
答案 0 :(得分:1)
您无法将属性添加到extensions
。
唯一可行的方法是使用objc_getAssociatedObject
来存储属性。
答案 1 :(得分:0)
通过互联网搜索此问题后,我找到了一个不错的解决方案。我们可以声明,但是这里有个窍门是更新的扩展名。
extension NSError {
struct Holder {
static var customErr: CustomError = CustomError()
}
var customeError:CustomError {
get {
return Holder.customErr
}
set {
Holder.customErr = newValue
}
}
}
实际上,在我之前发布的问题中,保留周期是存在的,但是当我添加了holder之后,就没有周期了,并且代码运行得很好。
谢谢大家