保存我使用过的机制:
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:self forKey:@"Save"];
[archiver finishEncoding];
[data writeToFile:filePath atomically:YES];
[archiver release];
[data release];
我用过
[[NSFileManager defaultManager] fileExistsAtPath:savePath];
[[NSFileManager defaultManager] contentsOfDirectoryAtPath:[SynchronizedData createPath] error:&error]
检查我的文件是否存在。他们确认文件存在。
但是我无法使用相同的目录路径加载文件
//NSData *encodedData = [[NSFileManager defaultManager] contentsAtPath:[SynchronizedData createPath]];
NSData *encodedData = [[[NSData alloc] initWithContentsOfFile:tempFilePath] autorelease];
if (encodedData == nil) {
NSLog(@"Save cannot open while loading!");
return nil;
}
上面的encodedData,都返回nil。(自动释放不是问题,我已经检查过了)
有什么想法有什么问题吗?
我在上一个帖子中发现了类似的情况,我再次尝试保留我的 tempFilePath,没关系,问题仍然存在。
我以比上述更简单的机制完成了保存。
从目录中获取 NSData 的问题仍未解决。也许是由于@paxdiablo 提到的读取权限。
因此我使用“Documents”文件夹而不是“Library”。NSData 打开没有错误。