实际上,我正在使用其中一个第三方库,它已集成到我的swift项目中。
在库中,某些方法签名使用 Where 关键字作为外部参数,似乎从swift代码中调用方法会产生麻烦。
var result = modelHandler.search(CustomerModel.self, where:[:], orderBy: "", offset: 0, count: 10)
目标c中的方法签名:
-(NSMutableArray *)search:(Class)modelClass where:(id)where orderBy:(NSString *)orderBy offset:(NSInteger)offset count:(NSInteger)count
错误表示如下:预期的分隔符','
答案 0 :(得分:4)
在Playground尝试了几次之后,我发现无法使用"其中"作为方法中的参数名称,因为它是Swift中的保留字。
以下方法声明给出了相同的问题消息:
预期','分离器
func sayHello(integer: Int, #where: [String : Int]) {
println("Hello")
}
func sayHello(integer: Int, where: [String : Int]) {
println("Hello")
}
然而,Swift programming language州:
要使用保留字作为标识符,请在之前添加反引号 在它之后。
因此,以下代码将编译:
// Note the use of backticks (`)
func sayHello(integer: Int, `where`: [String : Int]) {
println("Hello")
}