Я получаю сообщение об ошибке: свойство «clientChatLoad» не найдено в объекте типа «DataManager» при использовании следующей реализации:
AppDelegate.m
#import "IOS_Project_Name-Swift.h"
@class DataManager;
...
DataManager.clientChatLoad(0){ data, error in
guard data != nil else {
print(error)
return
}
guard let data = data else { return }
let json = JSON(data: data)
if let result = json["success"].bool{
if (result){
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(0.5 * Double(NSEC_PER_SEC))), dispatch_get_main_queue()) { () -> Void in
NSNotificationCenter.defaultCenter().postNotificationName("refreshChatDetails", object: nil, userInfo:nil)
}
}
}
DataManager.swift
...
@objc class func clientChatLoad(_ chatId: Int, completionHandler: @escaping (Data?, NSError?) -> ()) -> URLSessionTask {
// AJ TO-DO
var defaults = UserDefaults.standard
let URL = Foundation.URL(string: chatUrl)!
var request = URLRequest(url: URL, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 3.0)
request.httpMethod = "POST"
...
Насколько я понимаю, добавление @class DataManager
в мой класс Objective C, а также @objc
перед class func clientChatLoad
должно отображать код Swift в моем классе Objective C... но я все равно получаю сообщение об ошибке. Что я мог упустить из виду?
AppDelegate.m
должен быть на Objective-C, но он на Swift. - person matt   schedule 09.03.2017#import
сгенерированный соединительный заголовок -Swift.h? - person matt   schedule 09.03.2017DataManager.clientChatLoad
находится в Swift, а не в Objective-C. И в любом случае файл .m Objective-C никогда не должен содержать объявление@class
. Пожалуйста, постарайтесь показать свой реальный код. - person matt   schedule 09.03.2017@class
. - person matt   schedule 09.03.2017