2016-09-16 8 views
0

これにはたくさんの部分がありますが、私が知る限り、問題を再現するためにはすべてが必要です。NSURLサブクラスはファイルURLを使用して、非ASCIIファイル名のQuickLookでは機能しませんか?

私はそうのような、些細なNSURLサブクラスを作っ:

class URL2: NSURL { } 

を、私はそれを使用してファイルのURLを作っ:

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

その後、私はpreviewPanel(panel:previewItemAtIndex index:)からそれを返してみました。

結果:QLPreviewPanelに汎用ファイルアイコンが表示されます(ただし、ファイル名は正しい)。

不思議なことには、私は違ったこれらのいずれかを実行した場合、それは動作します:私は、プレーンNSURL(fileURLWithPath: "/Users/me/Downloads/ついて.pdf")を使用する場合は

  • を、それが正しく、ファイルの内容を表示します。
  • ASCII専用のファイル名を使用すると、ファイルの内容が正しく表示されます。
  • URL2で(NSFileManager操作のように)何か他のことをすると、ファイルが正しく検索されます。

この場合、QuickLookが自分のNSURLサブクラスに不満を持っている原因は何でしょうか?

答えて

1

サブクラスNSURL(またはNSURLRequest)は、多くの場合、OSのさまざまな部分でNSXPCの多用に少なからずのおかげで(と思う)狂気へのパスです。

関連するオブジェクトを含むカテゴリを使用することをお勧めします。これにより、NSURLオブジェクトにカスタムメソッドやプロパティを追加することができます。

+0

お役立ち情報しかし、Swiftでは、マニュアルを読んでエクステンションに(計算されていない)プロパティを追加することはできません。 –

+0

Oooh、関連オブジェクト。私は初めてその部分を逃した。それは考えです... –

関連する問題