我对如何使用NSMutableArrays存储多维数据感到非常困惑。

我正在尝试将汽车的品牌,型号,年份以及汽车描述(这是一个NSString)存储在一个数组中。该应用程序播放声音,加载描述并显示汽车图片。最初,我使用的是PLIST文件来存储此信息。然后在加载视图时将其加载到字典中。但是,我不再实现PLIST文件,因为基于项目中的文件夹,程序在运行时自动生成此数据会容易得多。

文件夹细分如下:
(主要资源文件夹)->品牌->型号->年->包含图片,.mp3和带说明的文件的文件夹

例如:
汽车->福特->野马-> 1965->图片,.mp3,文件中的描述

    //Go to folder
    NSString * resourcePath = [[NSBundle mainBundle] resourcePath];
    NSString * documentsPath = [resourcePath stringByAppendingPathComponent:@"Cars"];
    NSError *error;
    //Load names of all makes in folder into memory
    NSArray * listOfMakes = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:&error];


然后,我使用多个“ for”循环遍历此文件夹和所有其他文件夹,并将其他所有内容加载到NSArrays中。

但是,我需要一个可以在程序范围内访问的单个数组。因此,我正在单例中执行此操作。我想将这些数组添加到NSMutableArray中,以便可以在任何地方访问它。我查看了许多其他问题,例如:
  objective-c accessing arraysAdding objects in Multidimensional NSMutableArrayHow to add string objects to NSMutableArray,但是仍然很困惑,因为它们最多覆盖三个维度。具有多个数组的数组非常令人困惑...

任何帮助将不胜感激。

最佳答案

当涉及到多维...
我建议您使用NSMutableDictionary或NSDictionary。

但是我在实现过程中看到的最糟糕的事情是,您试图一次加载/保存整个应用程序数据,这些数据将一直保留在内存中,直到应用程序退出为止,因为它存储在单例中。

如果您使用CoreData并仅加载所需的内容会更好。

关于ios - Objective-C中的多维NSMutableArrays,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18887185/

10-11 23:04