【问题标题】:Struggling with Realm Data Structure on SwiftUI app在 SwiftUI 应用程序上与领域数据结构作斗争
【发布时间】:2021-10-13 15:29:54
【问题描述】:

我是 SwiftUI 上数据持久性的新手,并决定尝试一下 Realm。 到目前为止,我能够使用 CRUD 操作创建一个简单的待办事项列表应用程序,但我正在努力扩展它以管理更复杂的数据集。

我正在构建一个小型写作应用程序,它需要允许用户逐步创建多个故事。每个故事都应该有自己的一系列人物、情节、地点等。

所以基本上,我创建了一个引用其他类(Realm 对象)的 Story 类:

class Story: Object, Identifiable {

@objc dynamic var id : Date = Date()
@objc dynamic var warmUp: WarmUp = WarmUp()
@objc dynamic var settings: Settings = Settings()
@objc dynamic var characters = StoryCharacter()
@objc dynamic var world: World = World()
@objc dynamic var locations = Location()
@objc dynamic var plots = Plot()
@objc dynamic var scenes = StoryScene()
@objc dynamic var ideas = Idea()}

但我无法弄清楚如何在不让应用程序不断崩溃的情况下存储对象数组。

我试过了:

List<Object>(), RealmSwift.List<Object>(), [Object](), etc

但所有这些都会让我的应用在我尝试构建它时崩溃。

有什么想法吗? + 根据您的说法,关于我计划如何存储我的应用程序数据,我是否采取了正确的方法?

感谢大家的帮助!

【问题讨论】:

  • 你试过了吗:List()
  • 这与 List() 或任何其他子类相同,崩溃。
  • 您能否显示(代码)您实际写入领域的位置

标签: arrays database xcode swiftui realm


【解决方案1】:

List 对象是这样定义的

let myList = List<YourRealmObject>()

List 对象不是数组 - 虽然它们具有相似的接口,但也存在一些根本差异。

例如,List 可用于创建关系,LinkingObjects 对象可用于创建反向关系。列表对象也是实时更新的 - 所以如果列表中的元素被更新(例如,由另一个用户),列表将反映该更新

列表也是集合,可以观察到子对象的事件,这与数组有点不同。

另请注意,在撰写本文时,存储基元的列表存在一些问题 - 例如,@count 聚合函数不适用于基元 - 子对象需要包装在受支持的领域对象中才能使用 @数。

【讨论】:

    猜你喜欢
    • 2017-02-22
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多