iOS用のiCloudドキュメントのサンプルコードを見て、それを使ってuidocumentをiCloudと同期させたところ、iCloudとnsdocumentを同期しようとしていますUIDocument
を持っていないMac OSXアプリ。iCloudを使用してMac OS XからMac OS XをiPad/iPhoneに同期する方法
UIDocument
をNSDocument
に変更しようとしましたが、icloudとの同期方法はすべて異なります。 appleのドキュメントを除き、サンプルコードやチュートリアルは見つかりませんでしたが、これは非常に混乱しており、よく書かれていません。
たとえば、iOSのUIDocument
から以下の方法は、OS X上でNSDocument
に存在しません:
//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の間で同期します(NSDocument
はiOSにはなく、UIDocument
はOS Xに存在しません)。誰も私がMac OSX用のサンプルを見つけることができるか知っていますか(NSDocument
)?
されていません。 – Abizern
私はドキュメントを使用しましたが、それは私のためには機能しませんでした。 –
また、カットアンドペーストできるものを探し出すのではなく、試したコードのいくつかを表示してみてください。あなたはiOSのためにそれをやったので、あなたはその流れをある程度理解しておく必要があります。 – Abizern