Je suis le développement d'une application qui est actuellement en bac à sable. Il agit comme un éditeur de texte de base. Récemment, j'ai voulu tester ce qui se passe quand j'ouvre un fichier dans mon application et une autre application en même temps, faire une mise à jour en une seule application, puis ensuite voir le jour dans les autres. Je suis à l'aide d' Coda
ou BBEdit
que mon alternative éditeurs. Si je désactive le "bac à sable" -- puis, ce problème n'existe pas. Cependant, depuis les applications doivent être en bac à sable à partir du 1er Mars, je serais plutôt de mettre en œuvre une solution plutôt que d'attendre et de voir.
Quand j'ouvre les deux fichiers et d'effectuer une modification dans mon application, et puis de passer à l'application d'autres, les modifications sont prises en compte de manière que ces éditeurs ont la version que vous venez d'enregistrer à partir de mon application. Cependant, si j'effectue l'inverse de l'enregistrement à partir de leur application et puis de passer à la mienne-pas de joie. Sans entreprendre aucune action, la console signale deux erreurs spécifiques: deny file-issue-extension
et deny file-write-data
. L'application semble être en perte de privilèges pour modifier le document, car il a été changé par un éditeur externe après que le document a été ouvert dans mon application. Si j'essaie d'enregistrer le fichier dans mon application, il lui demande de reproduire le document parce qu'il a perdu l'accès au document original. Cela ne se produit pas dans l'autre sens parce que ces applications n'ont pas été en bac à sable et à cet effet, disposer d'autorisations que mon application ne fonctionne pas. Il ne semble pas que vous pouvez empêcher l'application d'autres de faire des modifications si vous ne souhaitez pas ce comportement.
La documentation sur developer.apple.com mentionne rien à ce type de situation. Je ne suis pas sûr si c'est un comportement intentionnel. Si c'est le cas, je peux juste dire que mon utilisateur que le document autorisations ont été perdues et elles devraient enregistrer une nouvelle version ou de ré-ouvrir le fichier. Si il n'est PAS prévu de comportement, alors que la méthode dans le NSDocument API serait d'accorder les autorisations pour le fichier une fois qu'il a été perdu? Je suppose que la réponse est la première, que c'est prévu, mais quelqu'un peut confirmer et s'il y a de la documentation?