我正在尝试弄清楚如何同步 Mac 沙盒应用程序中“应用程序支持”文件夹中的 .plist 文件。我知道我可以使用 iCloud 键值存储,但每个应用程序有 64KB 的限制,这可能会或可能不会达到,具体取决于用户向应用程序添加了多少内容!
我已经阅读了尽可能多的苹果文档,但我仍然很困惑:(
有人做过类似的事情吗?
Thanks
你应该创建一个子类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
}
}];
网上有很多教程,下面是我用来学习的一些例子:
- 在 iOS 5 中开始使用 iCloud 教程第 1 部分 http://www.raywenderlich.com/6015/beginning-icloud-in-ios-5-tutorial-part-1
- 在 iOS 5 中开始使用 iCloud 教程第 2 部分 http://www.raywenderlich.com/6031/beginning-icloud-in-ios-5-tutorial-part-2
UIDocument类参考 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIDocument_Class/UIDocument/UIDocument.html也可能有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)