2

システムで使用可能なすべてのエディターを一時ファイル (このコードでは「toString」) に記録しようとすると、システムに多くのアプリケーションがインストールされているにもかかわらず、常に null が返されます。

NSArray *appUrls = (NSArray*)LSCopyApplicationURLsForURL((CFURLRef)[NSURL URLWithString:toString], kLSRolesViewer | kLSRolesEditor);

toString には、次のファイル パスが含まれています。 /var/folders/pl/tcc5k3fd6tj2__9dprg9dm1m0000gp/T/tempFile

ここで何が問題になるはずですか?

4

2 に答える 2

4
[NSURL URLWithString:toString]

「file://var/folders/...」など、スキームを含む完全な URL 文字列が必要です。

使用する

[NSURL fileURLWithPath:toString]

代わりに、指定されたパスでファイル URL を取得します。

別の問題として、Launch Services は適切なアプリケーションを見つけるために拡張子 (またはファイルの種類/作成者) を使用するため、ファイル名にファイル拡張子 (「.txt」など) がないことも考えられます。

于 2012-11-08T10:29:28.627 に答える