NSDocumentController openDocumentWithContentsOfURL: отображение: завершение Handler: сбой
Я реализую приложение NSApplicationDelegate:openFiles для того, чтобы получить пользовательское поведение для конкретных документов. Однако для некоторых документов я хочу поведение по умолчанию (которое просто открывает и отображает их). Поэтому после сортировки документов я призываю к каждому документу:
[[NSDocumentController sharedDocumentController] openDocumentWithContentsOfURL:[NSURL URLWithString:camDoc] display:YES completionHandler:^(NSDocument *document, BOOL alreadyOpen, NSError *error){
NSLog(@"%@",document);
}];
В консоли регистрируется следующая ошибка:
*** setObjectForKey: key cannot be nil
Обработчик завершения никогда не вызывается. Если я закомментирую полный метод openFiles, то документы открываются нормально, поэтому кажется, что класс NSDocument реализован правильно.
Я попытался временно отключить "песочницу", так как метод делегата получает строки NSString, а не URL-адреса, поэтому я ожидал, что это могло быть проблемой. Это не помогло.
Что здесь не так?
Бонусный вопрос: Как я могу получить URL-адреса безопасности для открытия приложением (из Finder)?
1 ответ
Оказалось, что проблема была связана с тем, как создается NSURL. Это должно было использовать методы fileURL, конечно.