【问题标题】:Nested NSMutableDictionary efficiency and alternatives嵌套 NSMutableDictionary 效率和替代方案
【发布时间】:2013-01-16 17:27:04
【问题描述】:

我需要存储大量嵌套字符串并使用一些简单的格式(例如,'my.data.object.path')访问所有数据。

例如,如果我有以下结构:

- object1
- object2
-- nested1
-- nested2
--- nestednested1

例如,我需要检查object2.nested2.nestednested1 是否存在。有时我还要检查object2.nested2object2是否也存在。

使用嵌套的 NSMutableDictionary 对象是否有效,或者我应该从头开始编写一些更有效的数据存储模型?也许您可以建议针对此问题的现成的第 3 方解决方案。


我还考虑将所有 my.variable.path 路径存储在单个 NSMutableDictionary 中,因此我可以简单地设置变量 [storage setObject:object forKey:@"my.variable.path"] 并通过定义一个按点分割传入路径的自定义方法来提取它们并尝试找到最短路径。

【问题讨论】:

    标签: objective-c nsmutabledictionary performance


    【解决方案1】:

    我会认真考虑为此使用 Core Data。

    • 它适用于大量数据。
    • 它的内存效率非常高,即使数据量很大,因为它将数据加载为 需要。
    • 您可以像在示例中一样访问它。
    • 内置成熟技术。

    涵盖它的主要 Apple 文档是 Core Data Programming Guide
    他们还有Core Data Tutorial for iOS,它更短一些,可以帮助您入门。

    网络上还有很多非 Apple 教程。我的最爱之一是 Ran Wenderlich:Core Data on iOS 5 Tutorial: Getting Started。他还有其他关于 Core Data 的教程链接自那篇文章和here

    【讨论】:

    • 您能否提供一个示例或外部文章以您描述的方式描述 Core Data 的使用?我很好奇。
    • 当然,我会在问题中添加更多信息。 Core Data 需要一点点学习,但它非常强大,值得努力。
    • 哦,谢谢。我已经知道一些关于 Core Data 的事情,但我认为这个问题可以更容易地解决。请参阅我的问题的更新。顺便说一句,我已经在项目的其他部分使用了 Core Data。
    • 如果您已经在使用核心数据,那么它会变得更加容易,我更推荐它。只需根据上面显示的键路径创建新模型。
    【解决方案2】:

    字典是哈希映射的,比数组快。

    以及它嵌套在哪一层你可以通过[dict valueForKeyPath.@"key1.key2...."]访问它

    最多 3 级就可以了,但如果你超过了,那么你可以考虑设计一个类结构来解决这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 2013-08-23
      • 1970-01-01
      相关资源
      最近更新 更多