Swift:核心数据 - 解决对象创建的逻辑问题

标签 swift core-data

因此,我的 Swift 应用程序允许用户选择运动队来查看其历史比赛信息。目前,用户选择球队并扫描历史比赛的 JSON 数据文件。

如果历史比赛包含所选球队的名称,则比赛的详细信息将存储在核心数据实体中,该实体将输入到我的主 TableView 中。

但是,这提出了一个我无法解决的问题。

如果用户选择 A 队和 B 队,并且数据库包含 A 队和 B 队相互比赛的一场比赛,则会创建两个用于比赛详细信息的对象,因此, TableView 单元格会创建两次,一次为球队创建一次A 在比赛实例中被发现,并再次为 B 队找到。

有没有一种简单有效的方法来修剪由此产生的重复项?我不知道是否在对象创建时处理这个问题,或者只是想找到一种从 TableView 中删除任何重复单元格的方法。

非常感谢。

最佳答案

我认为你应该重新设计你的设置。将所有要搜索的记录存储在Core Data中。

如果您有硬编码的 JSON 文件 - 首次启动时导入它。如果您已检索 JSON - 插入/更新核心数据对象图中新增/更改的元素。

您将拥有一个 MatchGame 实体,并且只会检索一次。获取谓词类似于

NSPredicate(format: "homeTeam = %@ || guestTeam = %@", selectedTeam, selectedTeam)

关于Swift:核心数据 - 解决对象创建的逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34043636/

相关文章:

IOS/ARKIT - 如何做上一个和下一个按钮,点击时用动画改变 3D 模型?

ios - 在 UITableView 中,如何在隐藏行之后关闭行的底部边框?

ios - 添加效果后导出音频文件

ios - UITextField RightView 大小不正确

web-services - 用web服务同步IOS核心数据?

ios - 获取给出属性名称的属性类

ios - 快速抛出函数会阻塞主线程吗?

ios - NSDate 在 CoreData 中被保存为时间戳

iPhone:核心数据,如何从数据库获取值的总和

ios - 核心数据 : What's the difference between performBackgroundTask and newBackgroundContext()?