默认关键字如(Where)创建问题,当它在swift方法的外部参数中使用时

时间:2015-02-11 09:48:12

标签: objective-c swift

实际上,我正在使用其中一个第三方库,它已集成到我的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

错误表示如下:预期的分隔符','

1 个答案:

答案 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")
}