【问题标题】:Realm object predicate search is invalid领域对象谓词搜索无效
【发布时间】:2015-09-14 03:33:07
【问题描述】:

在 swift 应用程序中使用 Realm DB。我正在尝试使用如下谓词过滤结果:

  class func fetchUsersFromDB(usersId: [String]) -> [User]{
        var users = [User]()
        let realm = Realm()
        let predicate = NSPredicate(format: "objectId IN %@", argumentArray: usersId)
        var allUsers = realm.objects(User).filter(predicate)
        users = Array(allUsers)
        return users
    }

但这不会编译。我收到此错误:

Terminating app due to uncaught exception 'Invalid value', reason: 'IN clause requires an array of items'

任何想法我做错了什么?

【问题讨论】:

标签: swift realm


【解决方案1】:

删除argumentArray: 标签,因为你为 NSPredicate 调用了错误的初始化程序:

let predicate = NSPredicate(format: "objectId IN %@", usersId)

【讨论】:

  • 在上一个 XCode 版本中,这不起作用。我有这个错误“在调用中缺少参数标签'argumentArray:'”。你也这么看吗?
【解决方案2】:

从 Swift 3 开始,只需使用 Array(usersId) 而不是 usersId

【讨论】:

    猜你喜欢
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2012-10-23
    相关资源
    最近更新 更多