iPhone模拟器上的永久文件更改

时间:2010-04-24 02:17:02

标签: iphone

我遇到路径,相对路径,NSBundle以及所有路径/文件相关操作的问题:)

虽然我运行模拟器everthing正确,但所有文件更改都不是永久性的,所以每次运行我的应用程序时我都必须重复我的应用程序的初始设置。

问题: 读取和写入文件(来自资源目录)的正确方法是什么,并使所有文件更改成为永久更新(更新到项目文件夹中)?

由于

编辑:我写了一个简单的方法来做,这是正确的吗?

-(NSString *) getPath:(NSString *)forResource
{
    NSString *pathRes, *docPath, *destPath;
    NSArray *foundPaths;
    NSFileManager *fs = [[NSFileManager alloc] init];

    foundPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    docPath = [foundPaths objectAtIndex:0];
    destPath = [[NSString stringWithFormat:@"%@/%@",docPath,forResource] stringByStandardizingPath];


    if(![fs fileExistsAtPath:destPath])
    {
        pathRes = [[NSBundle mainBundle] pathForResource:forResource ofType:nil];
        [fs copyItemAtPath:pathRes toPath:destPath error:nil];
    }

    return destPath;
}

1 个答案:

答案 0 :(得分:2)

您无法写入设备上的应用程序文件夹。将任何持久性数据写入文档目录。您可以在第一次运行时将资源目录中的文件复制到文档目录,以保留现有逻辑。

NSSearchPathForDirectoriesInDomains( NSDocumentDirectory , NSUserDomainMask , YES );