将NSArray保存到iCloud并检索它

时间:2014-08-17 20:12:21

标签: ios nsmutablearray nsdata icloud

我有一个应用程序,当前将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的基本误解是责备,但任何指针都会受到欢迎。

1 个答案:

答案 0 :(得分:0)

终于点击了,我的方法错了。我不需要使用上述任何一种。一旦我完成了;

 [fileManager setUbiquitous:YES itemAtURL:currentPlace destinationURL:icloudURL error:&error];

系统会处理其他所有事情 - 即只使用

正常访问文件
residentData = [[NSMutableArray alloc] initWithContentsOfURL:icloudURL];

有效。