objective-c - 来自类 Objective C 的 Swift 完成处理程序
问题描述
我很快就上了这门课
@objc class NetworkManager: NSObject{
var dataRepositories: [repositories]!
static let shared = NetworkManager()
func request_repositories(_ completionHanlder: @escaping ()-> Void){
Alamofire.request("https://api.github.com").responseJSON { (response) in
let data = response.data
// print(response)
do{
let r = try JSONDecoder().decode(repositories.self, from: data!)
self.dataRepositories = [r]
completionHanlder()
}catch let error{
print(error)
return
}
}
}
我不能在目标 c 类中调用 request_repositories
@interface ViewController ()
@property (strong, nonatomic) NetworkManager *man;
@end
@interface NetworkManager ()
-(void)request_repositories;
//-(repositories*)retornar;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.man = [NetworkManager alloc];
[self.man request_repositories];
[[NetworkManager new] request_repositories];
}
@end
我怀疑我是否可以在目标 c 类 c 中调用完成处理程序,如果可以,我该怎么做,我是 ios 编程新手,我有疑问,我这样做是因为我不知道如何在目标 c 中使用 json,如果有人有更好的建议,谢谢
解决方案
推荐阅读
- python - 我注意到在 Tkinter 中有几种不同的创建窗口的方法,最有效或最常用/最常用的是什么?
- javascript - 让 React + JSX 在 Google Cloud Functions 上运行
- c# - 如何将枚举转换为显示名称和值到 json
- c# - 如何在 Azure Web 作业中使用 QueueTrigger 避免竞争条件?
- java - 是否可以使用可见性保证而不是完整的锁定来以线程安全的方式访问共享状态?
- c# - 在 nunit 测试中进行手动交互吗?
- java - 无法从java连接到打印机
- python - 如何设置硒窗口的大小?(在 python 中,在 Mac 上,使用 chromedriver)
- c++ - 如何在自定义音频端点枚举器中动态添加/删除音频端点?
- azure - 从 Azure 中的生产数据库创建测试或阶段数据库