创建一个plist文件iOS无法正常工作

时间:2012-10-30 22:20:12

标签: iphone ios plist

我正在尝试创建一个plist文件,稍后将在我的应用中写入。在第一个viewDidLoad中,我调用以下方法

-(void)createFavoritesFile{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];

    if (![fileManager fileExistsAtPath:documentDBFolderPath])
    {
        NSLog(@"file doesnt exist");
        NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"data.plist"];
        [fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:&error];
    }
    else{
        NSLog(@"file exists");
    }
}

然而,每次运行应用程序时,我都找不到创建的文件,如果我关闭应用程序并重新打开,NSLog会显示该文件不再存在。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

您忽略了-copyItemAtPath:toPath:error:的返回值和错误。我愿意打赌这个电话正在返回NO并填写一些错误。你应该检查它的返回值,如果它返回NO,则打印出错误。

失败的一个可能原因是,由于某种原因,您可能还没有实际的文档文件夹。您可以要求NSFileManager为您创建。

答案 1 :(得分:0)

打印资源路径并查看该文件是否存在。如果是,但没有工作,请检查此问题:Working with paths from [[NSBundle mainBundle] resourcePath]

无论如何,如果你的资源在你的主要包中,你可以随时使用:

- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension