繁体   English   中英

快速传递错误参数

[英]pass error parameter in swift

我正在使用第三方框架,其中包含一个类:

class DaService : NSObject {
    init!(name username: String!, error: AutoreleasingUnsafeMutablePointer<NSString?>)
    …
}

在我的快速代码中,我创建了DaService的实例:

let service = DaService(name: “My Name”, &err)

编译器抱怨:

Use of unresolved identifier 'err'

为什么会出现这个错误? 如何快速传递错误参数?

我目前无法测试,但是应该

var err : NSString? = nil
let service = DaService(name: "My Name", &err)

可在与C API交互的“自动释放指针”部分中找到更多信息。

您在传递err之前还没有初始化它。 工作示例:

class DaService : NSObject {
    init!(name username: String!, error: AutoreleasingUnsafeMutablePointer<NSString?>) {}

}

var err: NSString? = nil

let service = DaService(name: "My Name", error: &err)

当然,最好使用swift2的throwsdo/catch进行错误处理。

@MartinR是正确的。 AutoreleasingUnsafeMutablePointer<NSString?>意味着该函数打算为您提供NSString。 您必须给它一个变量,以便在其中放置字符串。

var errorString: NSString?
let service = DaService(name: "My Name", error: &errorString)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM