gpt4 book ai didi

ios - Realm swift : passing unpersisted objects between threads

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:27 25 4
gpt4 key购买 nike

我有一个模型,其中一些实例需要保留。只有一些,而不是全部,因为持久化所有实例会很浪费。该模型有 primaryKey类型 Int

我需要能够将所有对象从后台传递到主线程,因为 Realm 对象只能由创建它们的线程使用。当前版本的 Realm Swift (0.94) 似乎不支持将对象直接交给另一个线程。

对于持久对象(用write 保存到存储中的对象)这不是问题,我可以通过primaryKey 在另一个线程上获取对象.

但是,

未持久化的对象 是有问题的。当我用相同的 primaryKey 创建一个新对象时在后台(我想它应该被视为同一个对象,因为它具有相同的 primaryKey )并尝试在主线程上获取它(不使用 write 进行持久更改,因为我不想在存储中) ,我好像得到了旧物。

我看到了这个问题的以下解决方案:

1) 保留所有对象(这是不希望的,否则是不必要的)

2) 为我想要保留的对象保留单独的模型(导致代码重复)。

3) 使用init(value: AnyObject)Dictionary<String, AnyObject> 创建非持久化对象的初始化器(可能需要手动将对象属性复制到字典,繁琐且可能容易出错)

有没有更好的解决方案?

Offtopic:我还没有尝试过 Realm for Android,用它会有更好的情况吗?

最佳答案

您可以根据需要在线程之间自由传递非持久化对象——只有持久化对象还不能在不同线程之间传递。

关于ios - Realm swift : passing unpersisted objects between threads,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com