Sto leggendo sul sandbox delle applicazioni Mac e mi sto chiedendo cosa succede esattamente quando un utente seleziona una cartella in un NSOpenPanel o NSSavePanel. Il “App Sandbox Design Guide” fornisce il seguente esempio:A cosa accede l'app sandbox di Mac quando l'utente seleziona una cartella?
When a user of your app specifies they want to use a file or a folder, the system adds the associated path to your app’s sandbox. Say, for example, a user drags the
~/Documents
folder onto your app’s Dock tile (or onto your app’s Finder icon, or into an open window of your app), thereby indicating they want to use that folder. In response, the system makes the~/Documents
folder, its contents, and its subfolders available to your app.
Non è chiaro per me ciò che si intende con i “contenuti” qui. Questo è limitato a vedere quali file sono nella cartella senza poter leggere cosa c'è in quei file? Oppure significa semplicemente che l'app sarà in grado di leggere qualsiasi file (ricorsivamente) all'interno della cartella Documenti (in questo modo, ad esempio, può leggere sia ~/Documents/Foo.txt
sia ~/Documents/Bar/Baz.txt
)? E che dire delle operazioni di scrittura (scrivere su un file esistente, cancellarne uno o creare un nuovo file o cartella)?
Inoltre, se sono abilitate le autorizzazioni ai segnalibri, è possibile utilizzare - [NSURL bookmarkDataWithOptions: includingResourceValuesForKeys: relativeToURL: error:] per salvare queste autorizzazioni per un secondo momento. Vedere https://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxInDepth/AppSandboxInDepth.html#//apple_ref/doc/uid/TP40011183-CH3-SW16. – AriX