所以我已经对一堆对象进行了编码,但我在文件管理方面遇到了麻烦。我似乎无法打开现有文件或创建新文件。
我试过创建一个同名的空文件,或者只是创建一个新文件。它似乎没有回应(或为此做任何事情)。
编辑所以我在这里遵循了一些建议,现在我遇到了严重的访问崩溃。
这是我得到路径的地方:
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
filePath = [documentsDirectory stringByAppendingPathComponent:@"/bucketListData.dat"];
这是修改后的方法。
-(void) writeFile
{
NSData *encodedObject;
encodedObject = [NSKeyedArchiver archivedDataWithRootObject: bucketItems];
NSFileHandle *file;
file = [NSFileHandle fileHandleForReadingAtPath:filePath];
if(file == nil)
{
NSLog(@"Failed to open a file handle for writing. Attempting to create a file.");
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
file = [NSFileHandle fileHandleForReadingAtPath:filePath];
if(file == nil)
{
NSLog(@"Unable to create new file.");
}
}
[file writeData: encodedObject];
[file closeFile];
}