当我尝试使用以下方法创建plist文件(' Checklist.plist')时,我无法在目录中看到该文件。
- (NSString *)documentsDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths firstObject];
return documentsDirectory; }
- (NSString *)dataFilePath {
return [[self documentsDirectory] stringByAppendingPathComponent:@"Checklists.plist"];
}
为什么我无法在目录中看到该文件?我该如何解决这个问题?
答案 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应该包含原始字符串。