Pour l'instant, mon application exécute certaines choses à l'aide de AuthorizationExecuteWithPrivileges. Le problème est qu'il doit demander le mot de passe pour chaque opération. Est-il possible que je puisse l'authentifier dès le démarrage de l'application afin qu'elle ne demande plus d'autorisation plus tard, puis libérer l'objet d'autorisation lorsqu'il est libéré. J'ai besoin d'accéder à l'objet d'autorisation sur plusieurs classes, alors y a-t-il un moyen de le faire? J'ai vu cela mis en œuvre dans d'autres applications, je ne suis pas sûr de la façon de le faire moi-même.Conserver un objet d'autorisation
3
A
Répondre
1
Ne pouvez-vous pas demander l'autorisation dans l'applicationDidFinishLaunching de l'application delgate et la publier dans applicationWillTerminate?
Vous pouvez ensuite conserver le paramètre AuthorizationRef partagé dans le délégué d'application et y accéder à partir des différentes classes qui le requièrent.
Vous pouvez y accéder via:
[[NSApp delegate] sharedAuthenticationRef]; // Mac Desktop
ou
[[[UIApplication sharedApplication] delegate] sharedAuthenticationRef]; // iPhone
Cela suppose que vous avez créé l'accesseur sharedAuthenticationRef
dans votre délégué.
Cette question est également pertinente: Best Application Delegate Practice
Une autre approche serait de créer une classe singleton où l'instance singleton acquiert l'autorisation dans le initialiseur et le libère dans le dealloc.
Merci, c'est ce que j'avais prévu de faire, en mettant l'autorisation dans le principal délégué de l'application. Cependant, je suis confus quant à la façon dont j'y accéder à partir d'autres classes. Des exemples? merci – indragie
Un grand merci, va essayer :-) – indragie
A travaillé. Ce que j'ai fini par faire était de créer une classe séparée qui maintient une référence d'autorisation partagée. – indragie