Swift func()可以向Objective-C调用者返回多个值吗?

phi*_*hil 3 swift

如果我有一个如此定义的Swift函数:

func hilo (holeSize : Int, prompt : Int) -> (ballType : Int, ballColor : Int)) {

...
return (result1, result2)

}
Run Code Online (Sandbox Code Playgroud)

有没有办法从Objective-C方法调用这个Swift函数?我希望使用数组或字典来调用Objective-C中的func来接收func结果.

似乎无法找到讨论此主题的任何doco或其他.

谢谢.

Ikm*_*ani 5

Objective-C中不支持元组(返回多个值的函数),但您可以使用块.

- (void)hilo:(int)holeSize prompt:(int)prompt callback:(void (^)(ballType : Int, ballColor : Int))result {
   ...
}


[self hilo:(int)holeSize prompt:(int)prompt callback:^(ballType : Int, ballColor : Int) {
   ....
}];
Run Code Online (Sandbox Code Playgroud)