我正在尝试弄清楚如何同步我在 Mac 沙盒应用程序的“应用程序支持”文件夹中的 .plist 文件。我知道我可以使用 iCloud 键值存储,但每个应用程序有 64KB 的限制,这可能会或可能不会受到影响,具体取决于用户向应用程序添加了多少东西!
我已经尽可能多地阅读了 Apple 文档,但我仍然很困惑 :(
有人做过类似的事情吗?
谢谢
最佳答案
您应该创建一个 UIDocument
的子类,并将其与无处不在的目录一起使用。
有 2 个方法负责处理读/写。阅读时调用这个:
- (BOOL)loadFromContents:(id)contents ofType:(NSString *)typeName error:(NSError **)outError
写作时的这个:
- (id)contentsForType:(NSString *)typeName error:(NSError **)outError
所有打开/保存操作都会自动调用,您无需执行任何操作。但是,有些方法可以强制打开/保存。打开时调用:
- (void)openWithCompletionHandler:(void (^)(BOOL success))completionHandler
/* --- EXAMPLE --- */
MyDocument *doc = [[MyDocument alloc] initWithFileURL:ubiquitousFileURL];
[doc openWithCompletionHandler:^(BOOL success) {
if (success) {
// do sth
} else {
// handle error
}
}];
...保存时这样:
- (void)saveToURL:(NSURL *)url forSaveOperation:(UIDocumentSaveOperation)saveOperation completionHandler:(void (^)(BOOL success))completionHandler
/* --- EXAMPLE --- */
MyDocument *doc = [[MyDocument alloc] initWithFileURL:ubiquitousPackage];
[doc saveToURL:[doc fileURL] forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
if (success) {
// do sth
} else {
// handle error
}
}];
网上有很多教程,下面是我学习时使用的一些例子:
UIDocument Class Reference也可能有所帮助。
关于objective-c - 将 .plist 文件与 iCloud 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630361/