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