1

こんにちは、coocoaフレームワークを使用したファイルタイプのアプリケーションのデフォルトを設定したいと思います。今、私は次のコードを書きます:

bool setappasdefualt()
{
    OSStatus returnStatus = LSSetDefaultRoleHandlerForContentType(CFSTR(".txt"), kLSRolesAll, (CFStringRef) [[NSBundle mainBundle] bundleIdentifier]);
    if (returnStatus != 0) 
    {
        NSLog(@"Got an error when setting default application - %ld", returnStatus);
        return false;
    }
    return true;
}

しかし、実行後、エラー50が発生します。私が間違っていることは何ですか?

4

1 に答える 1

4

" .txt"はファイル拡張子であり、Uniform Type Identifier(UTI)ではありません。

適切なUTIを使用する必要があります。CFSTR("public.plain-text")

ユーザーGuillaumeは、ファイル拡張子をUTIに変換するためのちょっとした関数を作成しました。これは、「 という名前でここに表示されますUTIforFileExtension:(役立つ場合は、彼の回答に賛成する必要があります:-)

于 2013-02-07T06:32:17.897 に答える