我将我的代码更新为swift 3.0。我使用Realm作为数据库。我有以下代码行:
let thisJob = Jobs.objectsWhere("identifier == '\(identify)'")
编译器抛出错误,因为需要额外的参数。 "缺少参数' args'在电话"该参数是CVaListPointer。我不确定我应该如何使用这个论点。我试过了:
let thisJob = Jobs.objectsWhere("identifier == '\(identify)'", args: CVaListPointer)
但是,该行的编译错误是"无法将CVaListPointer.Type类型的值转换为预期的参数CVaListPointer。"
答案 0 :(得分:1)
Objective-C接口中的Varargs不是在Swift中导入的,这就是为什么Realm为Realm Objective-C提供了一个Swift包装器:RLMSupport.swift。将其添加到项目的源文件as described in Realm's installation instructions,您就可以使用Jobs.objectsWhere("identifier == '\(identify)'")
。
虽然identify
可以包含在进行字符串插值时应该转义的字符,但最好将其作为格式参数传递:
Jobs.objectsWhere("identifier == %@", identify)