无法保存和加载plist文件

时间:2014-09-23 17:03:00

标签: ios plist xcode6 nsfilemanager

当我尝试使用以下方法创建plist文件(' Checklist.plist')时,我无法在目录中看到该文件。 enter image description here

- (NSString *)documentsDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths firstObject];
return documentsDirectory; }

- (NSString *)dataFilePath {
return [[self documentsDirectory] stringByAppendingPathComponent:@"Checklists.plist"];
}

为什么我无法在目录中看到该文件?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

你在文件中保存了什么吗?

NSString *test = @"test";
[test writeToFile:[self dataFilePath] atomically:YES];

如果你在模拟器中运行它,你可以NSlog这个文件路径,而不是打开查找器,按cmd + shift + g粘贴文件路径,不包括Checklist.plist,只是文件文件路径,你将看到您刚创建的名为Checklist.plist的文件。

这是我的全部代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    NSArray *testArray = [NSArray arrayWithObjects:@"test", nil];
    [testArray writeToFile:[self dataFilePath] atomically:YES];
}
- (NSString *)documentsDirectory {
    NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths firstObject];
    return documentsDirectory; 
}

- (NSString *)dataFilePath {
    return [[self documentsDirectory] stringByAppendingPathComponent:@"Checklists.plist"];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

答案 1 :(得分:0)

调用-dataFilePath时,不会创建文件。

要在文件中写入纯字符串,请使用:

NSError *e = nil;
[@"blabla" writeToFile:[self dataFilePath] atomically:YES encoding:NSUTF8StringEncoding error:&e];

NSError *e1 = nil;
NSString *fileContents = [NSString stringWithContentsOfFile:[self dataFilePath] encoding:NSUTF8StringEncoding error:&e1];

两个错误都应该是nil,fileContents应该包含原始字符串。