方法不能是@objc协议的成员,因为其结果类型不能在Objective-C

时间:2019-10-14 15:40:34

标签: objective-c swift

在制作此方法时,我收到“方法不能成为@objc协议的成员,因为其结果类型不能用Objective-C表示”

 @objc public protocol ShareSecurityQuestionProtocol {
 func setResultofSecurityQuestion(valueSent: [NSMutableDictionary]) -> (success: Bool, error:  NSString)
 }

1 个答案:

答案 0 :(得分:2)

不能在Obj-C中表示字符串,因此您不能使函数返回一个元组。创建一个包含要返回的两个字段的Obj-C类型,然后返回该类型而不是元组。

@objc public class ShareSecurityQuestionResult: NSObject {
    let success: Bool
    let error: String

    init(success: Bool, error: String) {
        self.success = success
        self.error = error
    }
}

@objc public protocol ShareSecurityQuestionProtocol {
    func setResultofSecurityQuestion(valueSent: [NSMutableDictionary]) -> ShareSecurityQuestionResult
}