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, конечно.

Другие вопросы по тегам