简体   繁体   English

快速传递错误参数

[英]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的throwsdo/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.

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