【问题标题】:Swift closures translation to Objective CSwift 闭包转换为 Objective C
【发布时间】:2018-03-20 10:53:58
【问题描述】:

我有这个带有闭包的 Swift 函数:

static func fetchAccounts(success succeed : @escaping ((_ results:Array<Account>) -> ()),
                                   failure : @escaping ((NSError) -> ()))

我需要在 Objective C 类中使用它,但我不记得如何将它转换为 Objective C 块,关于块语法(块是空的):

[Account fetchAccounts success:(      ){
    NSLog(@"call back success");
} failure:(     ){
    NSLog(@"call back success");
}]

非常感谢。

【问题讨论】:

  • 相信你需要在static func fetchAccounts前面加上@objc
  • 谢谢,我会做的。但是我必须在目标 C 块中使用哪种语法?
  • 我在下面写了一个答案
  • 感谢您的帮助
  • 没问题!希望它能解决您的问题

标签: ios objective-c


【解决方案1】:

这是您在这种情况下处理 Objective-C 块的方式:

[someObject doSomethingWithBlock: ^return_type (var_type varName)
{
    //...
}];

This answer 回答类似的问题可能会有所帮助。

And this answer 关于声明 Objective-C 块是一个很好的资源。这是我得到上面列出的代码的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多