保存力學我用:文件存在但無法打開?
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。 (autorelease不是問題,我查過)
任何想法有什麼不對?
我在previous thread中發現了類似的情況,我試了再保留一次我的tempFilePath,沒關係,問題依然存在。
我已經完成了比上述更簡單的機制。
從目錄中獲取NSData的問題仍未解決。可能是由於@paxdiablo提及的讀取權限。
因此我使用「文檔」文件夾而不是「庫」。 NSData打開沒有錯誤。
什麼是'tempFilePath'? –
tempFilePath與savePath/[SynchronizedData createPath]的路徑相同 – user1824022
請NSLog tempFilePath並檢查它是否正確。 –