6

アプリの再起動後に開いているファイルを再度開くには、サンドボックス化されたアプリが必要です。Apple は、NSURL ブックマークの作成および解決メソッドでNSURLBookmarkCreationWithSecurityScopeおよびオプションを使用して、セキュリティ スコープのブックマークを提供します。NSURLBookmarkResolutionWithSecurityScopeただし、これらのフラグ/オプションは 10.7.3 以降でのみ有効であり、10.7.3 より前のアプリは失敗します。

サンドボックス アプリで 10.6 から 10.7.3 のファイル ブックマークの保持/再開を処理するにはどうすればよいですか?

--

フォローアップ: 以下の私の回答をご覧ください。この問題は、使用によってではなくNSURLBookmarkCreationWithSecurityScope、セキュリティ スコープのブックマークの開始および停止メソッドを使用することによって発生しました。

4

1 に答える 1

10

10.7 - 10.7.2 では問題が発生しNSURLBookmarkCreationWithSecurityScopeないことがわかりました。失敗の原因は、-[NSURL startAccessingSecurityScopedResource]:10.7.3 より前ではサポートされていない呼び出しです。したがって、OS チェックまたは RespondsToSelector チェックを使用して、このメソッド (および対応する停止メソッド) への呼び出しをラップする必要があります。start/stop を呼び出さない限り、ブックマークが 10.7.1 でも機能することをテストしました。

respondsToSelectorこの問題に遭遇した他の人に役立つ、使用するためのコードスニペットを次に示します。

これを使用して使用を開始します。

if([bookmarkFileURL respondsToSelector:@selector(startAccessingSecurityScopedResource)]) { // only supported by 10.7.3 or later
    [bookmarkFileURL startAccessingSecurityScopedResource]; // start using bookmarked resource
}

そして、これは使用を停止します:

if([bookmarkFileURL respondsToSelector:@selector(stopAccessingSecurityScopedResource)]) { // only supported by 10.7.3 or later
    [bookmarkFileURL stopAccessingSecurityScopedResource]; // stop using bookmarked resource
}
于 2012-08-31T00:07:44.930 に答える