如何接收和使用NSErrorPointer

And*_*lli 3 nserror swift

我不是问如何将NSErrorPointer传递给函数,而是如何接收它并使用它.我找不到任何关于此的文件.像这样的东西:

func doSomething(error: NSErrorPointer) {
    error = NSError(...);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了

无法分配给'let'值'错误'

sla*_*zyk 7

如果您查看标题,您可以看到NSErrorPointer:

typealias NSErrorPointer = AutoreleasingUnsafePointer<NSError?>
Run Code Online (Sandbox Code Playgroud)

这是:

struct AutoreleasingUnsafePointer<T> : Equatable, LogicValue {
    func getLogicValue() -> Bool

    /// Access the underlying raw memory, getting and
    /// setting values.
    var memory: T
}
Run Code Online (Sandbox Code Playgroud)

所以你必须检查逻辑值,然后设置内存,如下所示:

if error != nil {
    error.memory = NSError(...)
}
Run Code Online (Sandbox Code Playgroud)

这里还提到:采用Cocoa设计模式