2017-02-11 57 views
2

私はサンドボックスのMacアプリケーションを作っています。ファイルURLを取得するためにNSOpenPanelを使用し、それをセキュリティスコープのブックマークとしてUserDefaultsに保存しました。私は、アプリケーションを終了し、再起動すると、私は再びURLにデータのBLOBを解決することができます。startAccessingSecurityScopedResource()は実際に何をしていますか?

ドキュメントにはstartAccessingSecurityScopedResource()を呼び出し、その戻り値を確認する必要があります。 (それは私が呼び出すとtrueを返す)しかし、私はそれを呼び出さない場合、私はまだ解決されたURLを持っている、と私はまだそれにアクセスするためのアクセス許可を持っているようだ。

startAccessingSecurityScopedResource()は実際に何をしますか?もし私がそれを呼んでいなければ、起こりうる悪いことはありますか?

+0

アップデート:私はMac App Storeに数ヶ月間、少なくとも半ダースのバージョンでアプリを持っていました。このアプリは 'startAccessingSecurityScopedResource()'を呼び出すことはありませんが、Appleの査読者も私のユーザも、ファイルやフォルダへのアクセスに関する1つの問題は報告していません。 – Ssswift

答えて

1

アプリが標準の場所(ダウンロード、音楽 ムービー、ピクチャ)のファイルにしかアクセスせず、必要なentitlements for programmatic file and folder accessをアプリに含めた場合、セキュリティスコープのブックマークを保存する必要はありません。

しかし、アプリを再起動した後もアクセス可能な他の場所については、セキュリティスコープのブックマークを保存し、アクセスする前にstartAccessingSecurityScopedResource()に電話する必要があります。その手順をスキップすると、そのファイルにアクセスしようとするとすぐに例外が発生します。

は、セキュリティスコープのブックマークのリソースをアプリのサンドボックスで利用できるようにし、そのリソースへのアクセスを許可します。

+0

"その手順をスキップすると、そのファイルにアクセスしようとするとすぐに例外が発生します。私が質問に述べたように、いいえ、私はしません。あなたはこの行動を見ていますか?どのMacOSのバージョンを使用していますか? – Ssswift

関連する問題