问题标签 [realm-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
244 浏览

android - 无法在 RealmObject 中打包对象列表

我在打包 RealmObject 中的对象列表时遇到问题。

我有一个名为 Player 的 RealmObject,它扩展了 Parcelable。每个玩家都有一个 RealmObject 游戏列表(更具体地说是 3 个游戏)。Game 对象具有 score、avg 等字段...

我构建应用程序的方式是,在查询数据库后,我将所有玩家复制到一个数组列表,当设备发生旋转时,我使用 Parcelable 能够重新创建玩家的数组列表。我不知道这是否是正确的程序,但我认为最好不要每次都从数据库读取/写入数据库。

问题是我找不到在 Player 对象中打包游戏列表的方法。我尝试使用ArrayList<Game>我知道我可以打包的一个,但 Realm 向我显示一个错误!如果我尝试使用 RealmList,我不知道如何打包 RealmList。

我在网上阅读了很多文章,但我还没有找到建议的解决方案。有没有建议的方法可以用来打包 RealmList 或在 RealmObject 中使用 ArrayList?

非常感谢。

0 投票
0 回答
68 浏览

ios - 在领域中的一对多关系中实现参照完整性的正确方法

这是一个例子:

什么是建立一对多关系(依赖于 ID)的最佳解决方案,因此Goal只有一个Game作为父级。

也就是说要避免这种情况

我可以在Goal课堂上链接到游戏,但可以接受吗?或者我应该以某种方式使用 LinkingObjects (反向关系)?

我在这里问,因为不幸的是我在官方网站上没有找到任何答案。

0 投票
1 回答
722 浏览

swift - 领域列表中的对象未更新

我有一个模型,其中包含一个MyGroup.

MyGroup继承自 Realm 的Object. 它有一个计算属性percentage和一个oldPercentage用于存储最后一个计算属性的属性。我不想将其保存到数据库中,所以我忽略它。

问题出在下面的代码片段中。

我基本上想获取group,更改oldPercentage属性并将其传递回我的UICollectionView.

我得到的group是由indexPath. 这工作正常,给了我正确的group. 然后,我想更改 to 的oldPercentagepercentage。当我对局部变量执行此操作时group,它会正确更改其值。但是,groups列表中的对象不会更新。

我还尝试在oldPercentage不创建局部变量的情况下更改组的值。我没想到会出现与上面代码不同的行为,但事实并非如此。

我最后一次尝试是将group成功打印正确的对象分配oldPercentageindexPath. 它也没有工作。

使用name保存在数据库中的属性时,对象会按预期运行,并且值会正确更新。

我该怎么做才能更新我groupList

0 投票
0 回答
688 浏览

ios - 领域列表未在数据库中更新 - Swift

我有一个模型可以在一个视图控制器上将数据写入领域。然后是几个视图控制器,将模型拉回来并填充我模型中的其余数据。除列表外,所有内容都正确更新到数据库。它总是声明数据库中有 0 个条目。

我正在做的是我有另一个模型对象收集数据,称为challengeModeGameData.answerCollection 它是一个包含UserData用户答案和正确答案的对象集合。

当我拉回之前写入的对象时GameDataObject,我可以访问所有属性并使用来自 的值设置它们ChallengeModeGameData。我设置的一个属性是:

gameDataObject.answerCollection = challengeModeGameData.answerCollection

到控制台的打印显示数据在那里,gameDataObject.answerCollection确实保存了我想要的值。但是当write事务完成时,我设置的所有其他值ChallengeModeObject都在那里,但数据库仍然声称它对于我的answerCollection.

我应该为我丢失的领域列表(我知道它们不是动态的)做些什么不同的事情?

0 投票
1 回答
161 浏览

swift3 - 领域查询不适用于列表

我有两个领域对象位置和扇区。以下列方式定义:

我正在尝试使用以下方法创建一个位置内的扇区查询

如果我在打印语句中这样做,我可以看到我有正确的位置。但是,部门正在返回所有部门,包括其他位置的部门。

有什么想法吗?

0 投票
1 回答
15621 浏览

ios - 从 Realm 中的列表中删除对象 - Swift

我有一个集合视图,您可以在其中选择要删除的多个单元格。这意味着如果删除了多个单元格,那么在 Realm 中也应该删除多个对象 - 每个单元格 1 个对象。

我有一个函数,它接受一个Int's 数组,该数组将从集合视图的选定 indexPaths 中填充。

问题是我不确定如何做到这两个
1)删除领域中的对象和
2)在List没有删除对象的情况下保持最新

我的代码是:

我得到这样的索引路径:

let indexPaths = collectionView.indexPathsForSelectedItems

这是我在 Realm 中获取 indexPaths、更新List和删除对象的函数。它当前不起作用,因为对象没有被删除。我注意到这removeAll不会删除任何内容。

我这样称呼该函数:

removeVideos(at: indexPaths.map { $0.item })

有什么想法吗?

0 投票
2 回答
721 浏览

ios - 领域 - 删除后无法使用对象

我的应用程序中有一个视频播放器。收藏视图中有一个视频列表。如果您点击其中一个单元格,则会出现一个新的视图控制器来播放选定的视频。此外,您可以在这个新视图控制器中循环浏览集合视图中的所有视频,因为整个列表都已传递。

问题是:当用户在 中时PlayerVC,他们可以取消收藏Video. 如果他们这样做,我会Video从 Realm 中删除该对象。但是,这会导致:

Terminating app due to uncaught exception 'RLMException', reason: 'Object has been deleted or invalidated.'

基本上,如果用户正在观看视频PlayerVC并且他不喜欢视频,我希望他们暂时仍然能够观看视频。但是当他们离开时应该更新PlayerVC集合视图。FavoritesVCVideo

当我删除一个Video对象时,我使用 Realm 的delete方法。

这是我保存Video对象列表的代码:

这是我的Video类,它有一个isFavorite属性:

这是我Video在集合视图中显示对象的代码(注意:我RealmCollectionChange用来更新集合视图以删除和插入单元格):

最后,这是允许用户在所有Video对象之间播放和循环的代码:

最终,我希望将不喜欢的Video对象从 Realm 中完全删除。只是不确定在这种情况下如何/何时执行此操作。

有什么想法吗?

更新 1

解决此问题的一种方法是:

  • 制作副本的非托管副本Video,并使用该副本为视图控制器的 UI 供电。

我认为这可能有效的方式是:

  • PlayerVC收到两个,一个保存在 Realm 中的原始文件和一个用于驱动 UIList的副本。List让我们称列表favoriteListcopyList.

  • 所以在里面didToggleStarButton我们会做这样的事情:

代码:

有什么想法吗?

0 投票
1 回答
795 浏览

ios - iOS Swift 将 Alamofire 响应存储到 Realm

我需要将 alamofire JSON 响应直接存储到领域存储。这是我从 alamofire JSON 得到的响应。

这是我用于领域存储的代码

用于存储值的代码:

0 投票
1 回答
414 浏览

ios - Swift 上的 Realm - 创建关系

我有两个类形成一对多关系:

我以这种方式将对象添加到 Realm 中:

一切顺利,对象被插入到 Realm 中。但是,当我尝试像这样访问 FooB 对象时:

它开始繁荣,应用程序崩溃!所以,很明显,我没有正确地将关系对象插入到 Realm 中,关系被破坏了。我在 Realm 文档中遗漏了什么?我必须先创建数组并以另一种方式将其添加到父对象吗?

要更新我的问题,这是想要炸毁的操作:

调用:self?.fooTableView.reloadData() 导致表视图尝试显示检索到的 foo 对象及其去向 BOOM。

0 投票
1 回答
1886 浏览

realm - 在 RealmList 中添加/更新 realmObject

我有一个领域列表,比如领域对象中的学生列表,比如班级。我想请求给定班级的学生名单并在 studentList 中更新相同的学生名单。服务器返回的 studentList 可能包含旧学生和新学生。所以我希望我的 realmList 更新老学生的信息以及添加新学生(如果有的话)。

我所做的是,

  1. 使用 size == serverReturnedStudentList.size() 启动循环
  2. 在循环中创建学生并添加到领域(使用 realm.copyToRealmOrUpdate(student))
  3. 从步骤 2 接收托管学生对象。
  4. 获取班级 X 的学生列表并检查学生列表是否包含该 managedObject。
  5. 如果没有,则将学生添加到 studentList 中,否则什么也不做。

它按预期工作,但我知道这不是正确的方法。如果我跳过“包含”检查 (@step4) 并直接将托管对象添加到 realmList,则会在 realmList 中开始显示多个条目。

处理这种情况的最佳方法是什么?

另一个问题是,我在每个班级下都有“n”个班级和“x”个部分。我正在并行发出 nx 个请求,当我尝试启动 asyncExecutions nx 次时,我得到池大小限制异常(这很明显)并且我无法在 UI 线程上运行它,因为我的 UI 在 3-5 秒内无响应(而每个学生列表的循环都通过每个学生的 executeTransaction 执行)

任何帮助/建议将不胜感激。

提前致谢。干杯!