我非常喜欢Realm(0.92)和Swift的结合,但对从数据库中读取对象有疑问.我的目标是检索一个具有已知唯一ID(碰巧也是主键)的单个对象.

所有文档似乎都是围绕多个对象的查询而编写的,然后对这些对象进行过滤.在本例中,我知道对象ID,并且因为它是唯一的,所以希望直接检索它.

我目前的做法如下:

Realm().objects(Book).filter("id == %@", prevBook.nextID).first

这似乎很严厉.以前版本的文档表明有一种更直接的方法,但我似乎无法在文档中找到它.

我当前方法的问题是,它正在崩溃,以下函数出现异常:

public func filter(predicateFormat: String, _ args: CVarArgType...) -> Results<T>

据神秘报道,例外情况如下:

EXC_错误访问(代码=1,地址=0xedf)

欢迎提出任何建议.

期待一行提问:我已经确认了这本书.使用已知的好ID的nextID无法解决问题

推荐答案

object(ofType:forPrimaryKey:)是你想要的:Realm().object(ofType: Book.self, forPrimaryKey: prevBook.nextId).如果你需要用主键以外的东西搜索对象,没有比filter().first更简单的方法了.

Swift相关问答推荐

如何在SwiftUI 4+(iOS 16+)中使用新的NavigationStack进行导航

Swift ui 转换无法按预期工作

如何使 onKeyPress 与 TextField 快速配合使用?

OSX 中的 Popover 无法确定透明度

为什么变量不存储在 Swift 的过程数据区中

Xcode创建GitHub仓库,但未推送所有文件

PassthroughSubject 的 AsyncPublisher 值属性未生成所有值

如何让飞机与 RealityKit 中的物体相撞

ForEach within List:模式的好处?

如何在 SceneKit 上制作毛玻璃效果

为什么在Swift中每次调用Decimal类型的formatted()方法都会越来越慢?

快速递归:函数与闭包

如何在 Swift 中使用子定义覆盖父类扩展

在 Swift 中为(递归)扩展提供默认实例参数

'NSLog' 不可用:可变参数函数在 swift 中不可用

Swift 2.0 按属性对对象数组进行排序

iOS 视图可见性消失了

如何将 Int 拆分为其各个数字?

枚举大小写的原始值必须是文字

Xcode 和 Swift - 没有标题栏但有关闭、最小化和调整大小按钮的窗口