使用writeToFile:options:error:
保存文件时遇到一个奇怪的问题在第一种情况下,我遇到以下问题:
writeToFile failed with error Error Domain=NSCocoaErrorDomain Code=4 "The file “preferences.plist” doesn’t exist." UserInfo=0xa12c30 {NSFilePath=file:/Users/patrick/Desktop/Untitled.fef/preferences.plist, NSUnderlyingError=0xa0d130 "The operation couldn’t be completed. No such file or directory"}
但该文件实际上存在于该位置。该文件存储在app文档文件包中。
代码:( NSDocument的子类)
NSString *prefFile = [[[self fileURL] absoluteString] stringByAppendingPathComponent:@"preferences.plist"];
NSError *error;
BOOL succes = [[NSKeyedArchiver archivedDataWithRootObject:documentPreferences] writeToFile:prefFile options:0 error:&error];
if (!succes) {
NSLog(@"writeToFile failed with error %@", error);
}
答案 0 :(得分:6)
确保在使用各种类的任何...toFile
方法时使用实际路径,而不是错误地使用文件URL。您可以通过查看路径来区分它们。如果路径以file://
开头,则无法使用。如果以斜杠/
开头,则它是常规文件路径。您仍然可以使用NSFileManager
来检查文件是否存在。
与您的代码一样,而不是在absoluteString
致电self.fileURL
上致电path
。