我想将任何块作为参数传递,而不想知道精确的块参数/返回类型。
func myFunc(block:(xxx) -> yyy) -> AnyObject {
...
}
因此,我的代码中的xxx
应匹配任何类型的任意数量的参数(包括无)。 yyy
可以是从void
到AnyObject
到NSObject
的任何内容。
答案 0 :(得分:2)
您可以制作通用功能:
func myFunc<A,B>(block:A -> B) -> AnyObject {
...
}
答案 1 :(得分:1)
不幸的是,你不能在Swift中这样做。 Function Types由它们的参数和返回类型定义,并且没有通用函数类型。函数也不符合Any或AnyObject,因此您也不能使用它们。
答案 2 :(得分:0)
在Swift中,仍然可以使用选择器。也许你可以用它实现你想要的东西。见下面的示例:
func myFunc(selector:Selector) -> AnyObject {
self.performSelector(selector)
}
func someSelector() -> String {
return "test"
}
var result: AnyObject = myFunc(Selector("someSelector"))