Я хочу, чтобы мое приложение сохраняло документы, которые он создает для iCloud Drive, но мне нелегко следить за тем, что написало Apple. Вот что я до сих пор, но я не уверен, куда идти отсюда.Сохраните документы iOS 8 на iCloud Drive
UPDATE2
У меня есть следующий в моем коде вручную сохранить документ в ICloud Drive:
- (void)initializeiCloudAccessWithCompletion:(void (^)(BOOL available)) completion {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
self.ubiquityURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
if (self.ubiquityURL != nil) {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"iCloud available at: %@", self.ubiquityURL);
completion(TRUE);
});
}
else {
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"iCloud not available");
completion(FALSE);
});
}
});
}
if (buttonIndex == 4) {
[self initializeiCloudAccessWithCompletion:^(BOOL available) {
_iCloudAvailable = available;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:selectedCountry];
NSURL* url = [NSURL fileURLWithPath: pdfPath];
[self.manager setUbiquitous:YES itemAtURL:url destinationURL:self.ubiquityURL error:nil];
}];
}
У меня есть пособия, установленные для App ID и в самой Xcode. Я нажимаю кнопку для сохранения на iCloud Drive, и никаких ошибок не появляется, приложение не падает, но на моем Mac в iCloud Drive ничего не отображается. Приложение работает на моем iPhone 6 Plus через тестовый рейс при использовании iOS 8.1.1.
Если я запустить его на Simulator (я знаю, что это не будет работать из-за ICloud Drive не работает с тренажером), я получаю ошибку аварии: 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]'
'setUbiquitous: itemAtURL: DestinationUrl: ошибка:' возвращает BOOL ли операция была успешной или нет. Что такое возвращаемое значение? Также укажите указатель на объект 'NSError' для параметра' error'. Если метод возвращает NO, это, вероятно, даст вам еще несколько рекомендаций. – fguchelaar
@fguchelaar жаль, что я никогда не много перепутал с NSFileManager, поэтому некоторые из них проходят над моей головой. – user717452