现在我让我的应用程序使用AuthorizationExecuteWithPrivileges执行一些操作。问题是它需要为每个操作询问密码。有没有什么办法可以让我在应用程序启动后立即进行身份验证,以便以后不会要求授权,然后在取消分配时释放授权对象。我需要跨多个类访问授权对象,所以有什么办法可以做到这一点吗?我已经在其他应用程序中看到过这种情况,但我不确定自己如何做到这一点。
答案 0 :(得分:1)
您是否可以在应用程序delgate的applicationDidFinishLaunching中申请授权并在applicationWillTerminate中发布?
然后,您可以将共享的AuthorizationRef保留在应用程序委托中,并从需要它的各种类中访问它。
您可以通过以下方式访问它:
[[NSApp delegate] sharedAuthenticationRef]; // Mac Desktop
或
[[[UIApplication sharedApplication] delegate] sharedAuthenticationRef]; // iPhone
这假设您已在代理中创建了sharedAuthenticationRef
访问者。
这个问题也很恰当:Best Application Delegate Practice
另一种方法是创建一个单例类,其中单例实例在初始化程序中获取授权并在dealloc中释放它。