[英]pass error parameter in swift
I am using a third party framework, in which it contains a class : 我正在使用第三方框架,其中包含一个类:
class DaService : NSObject {
init!(name username: String!, error: AutoreleasingUnsafeMutablePointer<NSString?>)
…
}
In my swift code, I create an instance of DaService
: 在我的快速代码中,我创建了
DaService
的实例:
let service = DaService(name: “My Name”, &err)
Compiler complains: 编译器抱怨:
Use of unresolved identifier 'err'
Why this error? 为什么会出现这个错误? How to pass an error parameter in swift ?
如何快速传递错误参数?
I cannot test it currently, but it should be 我目前无法测试,但是应该
var err : NSString? = nil
let service = DaService(name: "My Name", &err)
More information can be found in the "Autoreleasing Pointers" section in Interacting with C APIs . 可在与C API交互的“自动释放指针”部分中找到更多信息。
you haven't initialized err before passing it. 您在传递err之前还没有初始化它。 Working example:
工作示例:
class DaService : NSObject {
init!(name username: String!, error: AutoreleasingUnsafeMutablePointer<NSString?>) {}
}
var err: NSString? = nil
let service = DaService(name: "My Name", error: &err)
Of course, better use swift2's throws
and do/catch
for error handling. 当然,最好使用swift2的
throws
和do/catch
进行错误处理。
@MartinR is correct. @MartinR是正确的。
AutoreleasingUnsafeMutablePointer<NSString?>
means that the function intends to provide a NSString to you. AutoreleasingUnsafeMutablePointer<NSString?>
意味着该函数打算为您提供NSString。 You must give it a variable in which to put the string. 您必须给它一个变量,以便在其中放置字符串。
var errorString: NSString?
let service = DaService(name: "My Name", error: &errorString)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.