Вызов функции Swift в Objective C - PullRequest
0 голосов
/ 24 октября 2018

У меня проблема с использованием метода, разработанного в Swift, который я хочу использовать в задаче C.

Swift 4 Класс: В этой функции я получаю информацию о пользователе (как userNumber, secretCode)

@objc class MySwiftClass: HPTableViewController {
    func loadMemberProfil(completion: ((_ sub : [String: AnyObject]) -> Void)!) {
        //API get profile and Bearer token
        let token = HPWSLoginManager.shared().saveSuccessResponse.token
        let url = URL(string: "http://51.38.36.76:40/api/v1/profile")
        var request = URLRequest(url: url!)
        request.httpMethod = "GET"
        request.addValue("Bearer \(token!)", forHTTPHeaderField: "Authorization")
        //get information in token
        URLSession.shared.dataTask(with: request) { (data, response, error) in
            guard let data = data else { return }
            do {
                let json = try JSONSerialization.jsonObject(with: data, options: .mutableContainers) as! [String: AnyObject]
                let sub = json["sub"] as! [String: AnyObject]
                if completion != nil{
                    completion(sub)
                }
            } catch {
                print("error")
            }
            }.resume()
    }
}

например, в конце функции я получаю

  sub["usernumber"]! // print +224625259239
  sub["secretcode"]! // print $2a$08$DIrq1iKnjkkY4KgI3Mqy7.aWC39m2aFMncfJSkom9l0yaXhGlH35m

Реализация Objective-C (Objective-Cm) Я хочучтобы отобразить эту информацию выше

#import "ProjectName-Swift.h"
MySwiftClass* userProfil = [[MySwiftClass alloc]init];
[userProfil  loadMemberProfil: ^(NSDictionary *sub) { // No visible @interface for 'MySwiftClass' declares the selector 'loadMemberProfil:'
userNumber = sub[@"usernumber"];
secretCode = sub[@"secretcode"];
}];

, но я получаю это сообщение об ошибке Нет видимого @interface для 'MySwiftClass' объявляет селектор loadMemberProfil: может кто-нибудь помочь мне?пожалуйста:)

1 Ответ

0 голосов
/ 24 октября 2018

Вам нужно

@objcMembers class MySwiftClass: UIViewController { --- }

ИЛИ

@objc func loadMemberProfil(completion: ((_ sub : [String: AnyObject]) -> Void)!) { --- }

С этим звонком

[userProfil loadMemberProfilWithCompletion:^(NSDictionary*dic ) {

}];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...