【问题标题】:How to iterate through an NSArray of objects and create a new NSArray containing a subset of the original?如何遍历对象的 NSArray 并创建一个包含原始子集的新 NSArray?
【发布时间】:2011-06-19 20:17:22
【问题描述】:

我正在开发一个基本的 iPhone 应用程序,该应用程序从 SQLite 表中提取餐厅对象,并在表中为用户显示它们。我的应用是基于导航的。我从 SQLite 数据库中提取数据,然后对它们进行排序没有问题。我能够做到没有问题。每个餐厅对象都有各种属性,如“名称”、“地址”、“类别”(即餐厅的类型,如希腊、意大利)等。现在,在从数据库中检索记录后,我能够成功地将它们放入 NSMutableArray,然后将它们排序到 NSArray。

我的问题是,使用这个 NSArray(或原始的 NSMutableArray),我想创建另一个数组,第一个索引包含“All”,然后每个剩余索引都包含餐厅类别的唯一名称原始列表,按字母顺序排序,然后在下一个屏幕上将其作为表格呈现给用户。从此表格中,如果用户选择“全部”,则用户将被带到另一个屏幕,显示另一个表格,在那里他们可以看到所有餐厅,无论类型如何。

但是,如果用户从可用列表中选择特定类别,则用户将被带到一个屏幕,该屏幕显示仅由该类型餐厅组成的表格(例如,仅意大利餐厅、仅中国餐厅、仅泰国餐厅)。我该怎么做呢?有什么想法或建议吗?

【问题讨论】:

    标签: iphone objective-c nsmutablearray nsarray


    【解决方案1】:

    一种可能的算法大纲:

    1. 遍历您的 NSMutableArray(例如 for(item in array))将每个项目的类别属性插入到 NSMutableSet(或 NSCountedSet,如果您还想要每个类别出现的次数)
    2. 使用NSSetsortedArrayUsingDescriptors:方法获取分类的排序数组。
    3. 以任何适合的方式添加 All 条目

    【讨论】:

    • 非常感谢您的及时回复。我真的很感激!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2023-03-26
    • 2012-02-14
    • 1970-01-01
    相关资源
    最近更新 更多