因此,我的 Swift 应用程序允许用户选择运动队来查看其历史比赛信息。目前,用户选择球队并扫描历史比赛的 JSON 数据文件。
如果历史比赛包含所选球队的名称,则比赛的详细信息将存储在核心数据实体中,该实体将输入到我的主 TableView 中。
但是,这提出了一个我无法解决的问题。
如果用户选择 A 队和 B 队,并且数据库包含 A 队和 B 队相互比赛的一场比赛,则会创建两个用于比赛详细信息的对象,因此, TableView 单元格会创建两次,一次为球队创建一次A 在比赛实例中被发现,并再次为 B 队找到。
有没有一种简单有效的方法来修剪由此产生的重复项?我不知道是否在对象创建时处理这个问题,或者只是想找到一种从 TableView 中删除任何重复单元格的方法。
非常感谢。
最佳答案
我认为你应该重新设计你的设置。将所有要搜索的记录存储在Core Data中。
如果您有硬编码的 JSON 文件 - 首次启动时导入它。如果您已检索 JSON - 插入/更新核心数据对象图中新增/更改的元素。
您将拥有一个 Match
或 Game
实体,并且只会检索一次。获取谓词类似于
NSPredicate(format: "homeTeam = %@ || guestTeam = %@", selectedTeam, selectedTeam)
关于Swift:核心数据 - 解决对象创建的逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34043636/