我的代码很简单:
@dynamicCallable
struct A {
func dynamicallyCall(withArguments arguments: Int...) -> Int {
return 0
}
}
这引发了错误:
@dynamicCallable attribute requires 'A' to have either a valid 'dynamicallyCall(withArguments:)' method or 'dynamicallyCall(withKeywordArguments:)' method
不知道还有什么可以尝试使它起作用。似乎也没有拼错。
答案 0 :(得分:2)
方法签名是错误的,因为文档指定它必须具有符合“ ExpressibleByArrayLiteral”协议的单个参数。
dynamicCall(withArguments :)方法的声明必须 具有符合ExpressibleByArrayLiteral的单个参数 协议...
https://docs.swift.org/swift-book/ReferenceManual/Attributes.html(选中 dynamicCallable 部分)
因此,您不应将其表示为 Int ... ,而应将其表示为 [Int] 。