NSURL 子类,文件 URL,对于非 ASCII 文件名在 QuickLook 中不起作用?

NSURL subclass, with file URL, doesn't work in QuickLook, for non-ASCII filenames?

其中有很多部分,但据我所知,它们都是重现问题所必需的。

我创建了一个简单的 NSURL 子类,如下所示:

class URL2: NSURL { }

我用它制作了一个文件URL:

let f = URL2(fileURLWithPath: "/Users/me/Downloads/ついて.pdf")

然后我尝试从 previewPanel(panel:previewItemAtIndex index:) 返回它。

结果:我在 QLPreviewPanel 中得到一个通用文件图标(但它有正确的文件名)。

奇怪的是,如果我以不同的方式执行这些操作,它会起作用:

在这种情况下,我可能做错什么导致 QuickLook 对我的 NSURL 子类不满意?

子类化 NSURL(或 NSURLRequest)通常是一条疯狂的道路,这在很大程度上(我认为)要归功于在 OS.

的各个部分大量使用 NSXPC

我建议改为使用具有关联对象的类别。这应该避免您遇到的边缘情况,同时仍然允许您向​​ NSURL 对象添加自定义方法和属性。