- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我不知道如何根据用户选择组合谓词。这是我的数据概览。
Person.swift
class Person: Object {
let id = RealmOptional<Int>()
dynamic var name = ""
dynamic var console = ""
override static func primaryKey() -> String {
return "id"
}
示例 json 数据
{
"id": 822,
"name": "Ron",
"console": "XBox"
},
{
"id": 823,
"name": "Jenny"
"console": "Playstation 4"
}
举例来说,我有很多数据,控制台由“XBox”、“Playstation 4”、“Wii”、“Sega”或“PS Vita”组成。我创建了一个复选框过滤选项,以允许用户选择他们想要过滤的选项并显示拥有哪个控制台的人的姓名。
例如,如果他们同时选择“XBox”和“Playstation 4”,我如何断定它们并显示人名的结果?目前我只能显示一个这样的选项。
var player: Results<Person>!
func filter(sender: AnyObject) {
let realm = try! Realm()
self.player = realm.objects(Person).filter("%K = %@", "console", "XBox")
}
最佳答案
你不应该动态地制作一个 NSPredicate 查询字符串。以编程方式创建 NSCompoundPredicate
更容易(也更安全)。您可以将 NSPredicate
传递给 Realm 的 RealmCollectionType.filter(...)
方法。下面是获取所有拥有 Xbox 或 Playstation 4 的 Person
的示例:
// could use .AndPredicateType here too, depending on what you want
let query = NSCompoundPredicate(type: .OrPredicateType, subpredicates: [NSPredicate(format: "console = 'Xbox'"), NSPredicate(format: "console = 'Playstation 4')])
let player = realm.objects(Person).filter(query)
虽然在你的情况下,如果你想要 OR
语义,你可能最好使用 IN
查询:
let selectedConsoles = ["Xbox", "Playstation 4"]
let player = realm.objects(Person).filter("console IN %@", selectedConsoles)
关于swift - RealmSwift + 多谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34132652/
我正在使用 RealmSwift 为我正在构建的 iOS 应用程序创建个人识别码对象。我已经创建了一个构造函数和一些基本函数来检查 pin、输入新 pin 等。我可以使用在 RealmSwift 中创
我已经使用 Realmsvift 在我的应用程序中创建了数据库。这是控制台中的输出。请告诉我,如何在应用程序中从中读取数据?例如,我想显示键值对:Oslo - 2.89。感谢您的帮助。 class V
我正在尝试从我的领域数据库中查询 token 和user_id,然后传递给我的 private var token 和userId,但是我一直抛出此错误 void函数中非预期的非无效返回值 在retu
假设我有很多城市对象。所以,城市 ID 将是我的主键,因为它们不能重复。将会有相同的城市名称,但是,不同的 ID 和不同的 ShopAddress。这是我的 json 结果这是来 self 的后端 {
当我使用 RealmSwift 时,它第一次工作并存储数据。然后,我使用 RealmBrowser 打开它。使用RealmSwift用Realm Browser打开Realm文件后,项目就解散了,错误
我有一个 Report 类,例如: class Report: Object{ @objc dynamic var id : String? = nil @objc dynamic var
这是我第一次在 Swift 上使用 Realm,尽管我通读了整个 Realm 文档,但我似乎无法理解一些简单而基本的概念。 当您在 Realm 中创建一个 Object 类并创建该类的实例时,它会自动
我一直在尝试安装新版本的 realm 0.92.3。我已按照教程中的每一步操作,但仍然不断收到错误消息。 btplpinoudaynpddpsugjevklbvh/Build/Products/Deb
我有这个模型: import Foundation import RealmSwift class Event: Object { dynamic var id
我已经在版本 0.98.2 中安装了 RealmSwift 的动态框架。(CocoaPods 不工作。) 我收到以下错误: module-includes>:1:9: note: in file in
let selectedConsoles = ["Xbox", "Playstation 4"] let players = realm.objects(Person).filter("console
我有一个带有一些字符串大小写的枚举 public enum UserPermission: String, Decodable { case userManagement = "USER_MA
我在理解避免将数据重复写入 Realm 数据库方面遇到了一些问题。我有以下对象模型 Person.swift class Person: Object { let id = RealmOpti
我不知道如何根据用户选择组合谓词。这是我的数据概览。 Person.swift class Person: Object { let id = RealmOptional() dynami
我如何知道特定交易何时完成? 我想在交易完成后运行一段特定的代码。我该怎么做? 我在下面的 war 中执行写入 - do { try realm.write({ realm.add()
我是编程新手,我想知道如何使用 RealmSwift 将数据存储在列表中。 考虑以下模型: import RealmSwift class ScanResults: Object{ dynamic v
我正在为我的项目使用 RealmSwift。但是,我不确定如何解决以下问题: RMLException: Attempting to modify object outside of a write
我有一些从 Realm 中获取的 item: let items = realm.objects(ShoppingListItem.self) print("\(items.count) items"
我有两个类(class): 第一个: class GameObject: Object { @objc dynamic var gameOutcome: String? = nil @
使用 RealmSwift 执行此操作的正确方法是什么,它曾经是 RLMobject var stream:Results stream = Realm().objects(streams) 第一个作
我是一名优秀的程序员,十分优秀!