我見過的iCloud文件示例代碼爲iOS和我用它來一個uidocument同步,並從iCloud中,現在我想用nsdocument上同步的iCloud一個沒有UIDocument
的Mac OSX應用程序。如何同步的NSDocument在Mac OSX到iPad/iPhone與iCloud的
我試圖將UIDocument
更改爲NSDocument
,但與icloud同步的所有方法都不同。除了apple的文檔外,我還沒有找到任何示例代碼或教程,這些文檔非常混亂,寫得不好。
例如,下面的方法,從UIDocument
iOS上不NSDocument
存在於OS X:
//doc is an instance of subclassed UIDocument
[doc openWithCompletionHandler:nil];
蘋果文檔提供了OS X這樣的代碼:
- (void)checkIfCloudAvaliable {
NSURL *ubiquityContainerURL = [[[NSFileManager defaultManager]
URLForUbiquityContainerIdentifier:nil]
URLByAppendingPathComponent:@"Documents"];
if (ubiquityContainerURL == nil) {
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
NSLocalizedString(@"iCloud does not appear to be configured.", @""),
NSLocalizedFailureReasonErrorKey, nil];
NSError *error = [NSError errorWithDomain:@"Application" code:404
userInfo:dict];
[self presentError:error modalForWindow:[self windowForSheet] delegate:nil
didPresentSelector:NULL contextInfo:NULL];
return;
}
dest = [ubiquityContainerURL URLByAppendingPathComponent:
[[self fileURL] lastPathComponent]];
}
- (void)moveToOrFromCloud {
dispatch_queue_t globalQueue =
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(globalQueue, ^(void) {
NSFileManager *fileManager = [[NSFileManager alloc] init];
NSError *error = nil;
// Move the file.
BOOL success = [fileManager setUbiquitous:YES itemAtURL:[self fileURL]
destinationURL:dest error:&error];
dispatch_async(dispatch_get_main_queue(), ^(void) {
if (! success) {
[self presentError:error modalForWindow:[self windowForSheet]
delegate:nil didPresentSelector:NULL contextInfo:NULL];
}
});
});
[self setFileURL:dest];
[self setFileModificationDate:nil];
}
哪有我在iOS和OS X之間同步(因爲iOS上不存在NSDocument
,而OS X上不存在UIDocument
)?有誰知道我可以在哪裏找到適用於Mac OSX的示例(NSDocument
同步)?
不是所有的人找到文件「混亂和寫得不好」。 – Abizern 2012-01-28 19:15:14
我使用了文檔,它不適合我。 – 2012-01-28 19:29:11
另外 - 爲什麼不顯示你試過的一些代碼,而不是尋找你可以剪切和粘貼的東西。你已經在iOS上完成了 - 所以你必須對流程有一些瞭解。 – Abizern 2012-01-28 19:44:15