我试图将一个简单的.plist文件保存到我的documentsDirectory
。我已经按照Facebook的文档来保存令牌,我已经实现了以下方法:
static NSString* kFilename = @"TokenInfo.plist";
[...]
- (instancetype)init {
if (self = [super init]) {
_tokenFilePath = [self filePath];
}
return self;
}
- (NSString *)filePath {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths lastObject];
return [documentsDirectory stringByAppendingPathComponent:kFilename];
}
- (void)writeData:(NSDictionary *)data {
NSLog(@"File = %@ and Data = %@", self.tokenFilePath, data);
BOOL success = [data writeToFile:self.tokenFilePath atomically:YES];
if (!success) {
NSLog(@"Error writing to file");
}
}
我目前正在打印NSLog(@"Error writing to file");
。关于为什么会这样的想法?
答案 0 :(得分:4)
您希望NSDocumentDirectory
不是NSDocumentationDirectory
。 Xcode中的代码完成提供了文档目录枚举之前的文档目录。这很容易错过。
答案 1 :(得分:0)
另外检查Documents目录是否存在,创建它是否安全
在- (NSString *)filePath
return
方法
NSFileManager * fm = [NSFileManager defaultManager];
NSError * err;
[fm createDirectoryAtPath: documentsDirectory withIntermediateDirectories:YES attributes:nil error:&err];
if (err)
{
NSLog(@"%@ ", err.localizedDescription);
}