【问题标题】:Recent searches with Core Data最近使用 Core Data 进行的搜索
【发布时间】:2009-05-13 20:33:32
【问题描述】:

我正在为 iPhone 制作一个 Core Data 应用程序,但希望这个问题足以适用于 Mac OS X,以便在没有 NDA 问题的情况下得到解答。

当用户进行搜索时,我使用实体条目将每个结果保存到上下文中。我希望稍后可以在“最近搜索”部分检索这些结果。解决这个问题的最佳方法是什么?

我正在考虑的一种方法是添加另一个名为 History 的实体,其条目属性链接到该实体。第一个搜索结果的 Entry.history_id = 1,第二个结果的 Entry.history_id = 2,依此类推。然后,Recent Searches 将选择具有给定历史 ID 的条目实体。

【问题讨论】:

    标签: iphone cocoa-touch core-data


    【解决方案1】:

    如果您想要的是一个有序的搜索列表,那么您是对的:您将不得不手动管理一些指定顺序的属性。您提供的history_id 是一种可能性。我可能会使用在插入实体实例时设置的日期属性。然后,您可以按此日期属性订购您的提取。为了存储实际搜索,我经常将查询的 NSPredicate 实例序列化为数据属性(自己处理序列化/反序列化)或可转换(使用默认的 NSUnarchiveFromData 传输)属性。

    【讨论】:

    • History 实体的一个优点是我可以存储标题来标记搜索结果集(不是原始要求)。我确实喜欢对数据进行排序和归档 NSPredicate 以供以后检索的想法。
    • 是的,这一切都在一个历史实体中:名称(字符串)、日期(日期)、谓词(可转换)属性。
    猜你喜欢
    • 2023-03-25
    • 2015-03-18
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 2015-06-22
    • 1970-01-01
    相关资源
    最近更新 更多