Метод не может быть членом протокола @objc, потому что его тип результата не может быть представлен в Objective-C - PullRequest
0 голосов
/ 14 октября 2019

Я получаю сообщение «Метод не может быть членом протокола @objc, поскольку его тип результата не может быть представлен в Objective-C» при выполнении этого метода

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

1 Ответ

2 голосов
/ 14 октября 2019

Кортежи не могут быть представлены в 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...