我正在实施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类是正确实现的。
我尝试暂时关闭Sandboxing,因为委托方法收到的NSStrings不是URL,所以我预计这可能是问题所在。这没有用。
这里出了什么问题?
红利问题:如何让应用程序(来自Finder)打开安全范围的URL?
答案 0 :(得分:0)
原来问题是由于NSURL的创建方式。那当然应该使用fileURL方法。