有人可以解释这个错误以及为什么这适用于闭包吗?
如果您在“B”类中将“测试”更改为“A”,那么这两种情况都可以正常工作。
测试版 7
protocol Test {
func someFunc() -> String
var someClosure: () -> Int { get }
}
class A: Test {
func someFunc() -> String {
return "A String"
}
var someClosure: () -> Int {
return {
return 2
}
}
}
class B {
let a: Test
let aString: () -> String
let aInt: () -> Int
init(a: Test){
self.a = a
aString = a.someFunc // Error: Partial application of protocol method is not allowed
aInt = a.someClosure // Works fine
}
}
更新
这也是我奇怪的分段错误集合https://gist.github.com/aleksgapp/795a2d428008bdfa4823
如果您对此有任何想法,请随时发表评论。