gpt4 book ai didi

ios - 使用完成处理程序(闭​​包)语法从 objective-c 文件调用 swift 文件中的函数

转载 作者:搜寻专家 更新时间:2023-10-31 22:24:26 26 4
gpt4 key购买 nike

我在从 swift 函数中有闭包的 objective-c 文件调用 swift 文件中的函数时遇到问题。

这是 Swift 函数

//In Utilities class

static func getString(query: NSString, completion: @escaping (_ response: NSString) -> Void) {

completion("hello")
}

这就是我尝试在 objective-c 类中调用它的方式:

 [Utilities getString:@"hi there" completion:^(NSString* response) {
NSLog(response);
}];

我收到错误“选择器‘getString:completion:’没有已知的类方法”

上面有什么问题?

注意:我可以在没有闭包/完成 block 的情况下调用更简单的方法。

in swift class
static func myTest () {
print("function called")
}

从 objective-c 类调用:

[Utilities myTest];

所以问题似乎与闭包语法有关。

最佳答案

包围类
@objcMembers class Utilities:NSObject {

或函数

@objc class func getString(query: NSString, completion: @escaping (_ response: NSString) -> Void) {

[Utilities getStringWithQuery:@"hi there" completion:^(NSString* response) {
NSLog(response);
}];

关于ios - 使用完成处理程序(闭​​包)语法从 objective-c 文件调用 swift 文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53559560/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com