【发布时间】:2015-12-07 10:40:43
【问题描述】:
我在 Objective-C 中有一个方法,它接受一个参数并在一个块中返回一个结果。如何通过桥接头将此结果返回到 swift 块?注意我有其他非阻塞函数返回,这工作正常。
目标-C
- (void)performMethod:(NSString*)myString
{
[self.class
doSomething:myString
onSuccess:^(NSArray * results) {
// Return results
}
onFailure:^(NSError * error) {
// Return error
}];
}
桥接头
?
斯威夫特
class.performMethod(myString:String)->(results) in NSArray {
}
【问题讨论】:
-
... 接受一个参数并在一个块中返回一个结果... ???您的函数只返回 void。
-
这就是问题 - performMethod 应该如何构造,以便我可以通过桥接头将块中的结果返回给 swift 方法。我引用的块在 onSuccess 内:
-
再次检查我的“笔记”。你objectiv c函数不返回任何块。它返回无效。您将什么声明为您的 swift 代码的“原型”与您的目标 c 代码无关。你问如何将你的目标代码“翻译”成 swift?
-
您熟悉桥接头的概念吗?随意调整objective-c函数,使onSuccess或onFailure中的结果通过performMethod方法返回。
-
是的,我是。您想编写一些与您的 swift 代码具有相同签名的目标 c 函数吗?或者你想做什么?我很抱歉,但你的问题是“我在 Objective-C 中有一个方法,它接受一个参数并在一个块中返回一个结果。如何通过桥接头将此结果返回到一个快速块?”所以唯一的答案是,你的函数不返回任何东西,而是 void ....
标签: objective-c swift bridging-header