2009-09-26 4 views
3

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

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.

+0

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

+0

Un grand merci, va essayer :-) – indragie

+0

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

Questions connexes