这里有很多部分,但从我所知道的情况来看,它们都是重现问题所必需的。
我创建了一个简单的NSURL子类,如下所示:
class URL2: NSURL { }
我用它制作了一个文件网址:
let f = URL2(fileURLWithPath: "/Users/me/Downloads/ついて.pdf")
然后我尝试从previewPanel(panel:previewItemAtIndex index:)
返回。
结果:我在QLPreviewPanel中获得了一个通用文件图标(但文件名正确)。
奇怪的是,如果我以不同的方式做任何一件事,那就有效:
NSURL(fileURLWithPath: "/Users/me/Downloads/ついて.pdf")
,则会正确显示文件内容。在这种情况下,我可能做错了什么导致QuickLook对我的NSURL子类不满意?
答案 0 :(得分:1)
NSURL(或NSURLRequest)的子类化通常是疯狂的途径,这在很大程度上(我认为)在OS的各个部分大量使用NSXPC。
我建议使用带有关联对象的类别。这应避免您遇到的边缘情况,同时仍允许您向NSURL对象添加自定义方法和属性。