我有一个应用程序,当前将NSMutableArray保存到iPad上的文档目录中的文件。这是由
保存的[residentData writeToFile:filePath atomically:NO];
并通过;
回读residentData = [[NSMutableArray alloc] initWithContentsOfFile:filePath];
我需要将此文件写入iCloud,因为数据需要跨多个设备提供。我已尝试以下方法在iCloud中创建文件;
NSData *myFileData = [NSKeyedArchiver archivedDataWithRootObject:residentData];
[fileManager createFileAtPath:[icloudURL path] contents:myFileData attributes:nil];
确实在正确的位置创建了一个文件。我正在努力了解如何将此文件读回我的NSMutableArray(residentData)。我试过了;
residentData = [NSKeyedUnarchiver unarchiveObjectWithData:myFileData];
但这并没有正确地解码到数组中。请有人告诉我我的方式的错误 - 我怀疑我的NSData的基本误解是责备,但任何指针都会受到欢迎。
答案 0 :(得分:0)
终于点击了,我的方法错了。我不需要使用上述任何一种。一旦我完成了;
[fileManager setUbiquitous:YES itemAtURL:currentPlace destinationURL:icloudURL error:&error];
系统会处理其他所有事情 - 即只使用
正常访问文件residentData = [[NSMutableArray alloc] initWithContentsOfURL:icloudURL];
有效。