Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-接收所有类型的闭包,并将其转换为objc_块_Ios_Objective C_Swift - Fatal编程技术网

Ios Swift-接收所有类型的闭包,并将其转换为objc_块

Ios Swift-接收所有类型的闭包,并将其转换为objc_块,ios,objective-c,swift,Ios,Objective C,Swift,我试图弄清楚如何创建一个可以接收任何类型的swift闭包(接收0个参数的闭包和接收1个或多个参数的闭包)的函数,并从中创建一个objc_块。 这个问题分为两个主要问题: 1) 如何正确声明接收所有可能闭包类型的函数?我已经在使用接收未知类型的函数,例如: func myFunc<T>(param: T) {} 这是一个问题,因为我不知道输入闭包的类型。 有什么想法吗?这有可能吗?如果你不知道闭包类型,怎么称呼它?你的实际目标是什么?“你想让这个函数做什么?”苏尔坦:嗯,我不

我试图弄清楚如何创建一个可以接收任何类型的swift闭包(接收0个参数的闭包和接收1个或多个参数的闭包)的函数,并从中创建一个objc_块。

这个问题分为两个主要问题:

1) 如何正确声明接收所有可能闭包类型的函数?我已经在使用接收未知类型的函数,例如:

func myFunc<T>(param: T) {}
这是一个问题,因为我不知道输入闭包的类型。


有什么想法吗?这有可能吗?

如果你不知道闭包类型,怎么称呼它?你的实际目标是什么?“你想让这个函数做什么?”苏尔坦:嗯,我不需要调用它。我正在使用JavaScriptCore,我正在尝试创建一个函数,该函数将从这些块中创建JSValues,以便将它们传递到javascript上下文以进行回调。因为我也知道我的javascript方面,所以我知道应该给我的JS提供哪些块functions@Tim好吧,每当我想向javascript上下文传递swift闭包时,我都需要创建一个objc块,而不是一个jsvalue。我正在尝试创建一个这样的通用函数,这样每当我在javascript上下文中调用函数时,我都可以用swift闭包内联调用它。你知道更多关于swift闭包的详细信息吗?(参数的数量和类型或返回类型)要将函数传递到该上下文所调用的方法的确切签名是什么
var objCBlock: @objc_block ()->() = {()->() in println("closure")}