0

假设我有一个模型对象类 Box。在我的 Box 类中,我添加了图像引用 (png)、音频 (mp3) 等……与其将它们存储为 NSData,不如引用文件的路径……以节省内存。

我想归档这个 Box 类。在桌面上,我们将使用文档包(NSFilewrapper)。但是这个类不是 Iphone OS 的一部分。

关于归档此类并将所有文件包含为“文档包”的任何建议?这类似于应用程序显示为文件但实际上是文件夹的方式......谢谢!

4

1 回答 1

0

如果您确实需要将对象保存在 Box 中,我会将它们加载到 NSDictionary 中并写出:

注意:这是未经测试/非生产代码,仅作为起点。

- (BOOL)saveBox:(Box*)aBox;
{
    NSMutableDictionary *boxDict = [NSMutableDictionary dictionaryWithCapacity:10];

    // Add contents of box to dictionary (exercise left up to original poster)

    // boxDict is now populated

    // write dictionary to apps document directory.
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    if (!documentsDirectory) {
        NSLog(@"Documents directory not found!");
        return NO;
    }

    // Assumes Box class has name property
    NSString *outputFile = [documentsDirectory stringByAppendingPathComponent:[aBox name]];

    return [boxDict writeToFile:outputFile atomically:YES];

}

这可以很容易地修改为根据您的需要返回文件的名称等。

于 2010-03-03T20:33:47.327 回答