特定のドキュメントのカスタム動作を取得するために、NSApplicationDelegate の application: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 クラスが正しく実装されているように見えます。
デリゲート メソッドは URL ではなく NSString を受け取るため、サンドボックスを一時的にオフにしてみました。それは助けにはなりませんでした。
ここで何がうまくいかないのですか?
おまけの質問: セキュリティ スコープの URL をアプリケーションで (Finder から) 開くにはどうすればよいですか?