2009-09-26 39 views
3

现在我有我的应用程序使用AuthorizationExecuteWithPrivileges执行一些事情。问题是它需要为每个操作请求密码。有什么办法可以在应用程序启动后立即对其进行身份验证,以便稍后不要求授权,然后在授权对象发布时予以释放。我需要跨多个类访问授权对象,那么有什么办法可以做到这一点?我已经看到这在其他应用程序中实现,但我不确定如何自己做。保留一个授权对象

回答

1

您是否可以在applicationWillTerminate中的应用程序delgate的applicationDidFinishLaunching和release中请求授权?

然后,您可以将共享AuthorizationRef保留在应用程序委托中,并从需要它的各个类访问它。

你可以通过访问:

[[NSApp delegate] sharedAuthenticationRef]; // Mac Desktop 

[[[UIApplication sharedApplication] delegate] sharedAuthenticationRef]; // iPhone 

这里假设你已经创建了sharedAuthenticationRef访问您的委托。

这个问题也是中肯:Best Application Delegate Practice

另一种方法是创建一个单独的类,其中单实例将获得在dealloc中的初始化函数和释放它的授权。

+0

谢谢,这就是我打算做的,把授权放在主应用程序委托中。不过,我很困惑我会如何从其他类访问它。任何例子?谢谢 – indragie

+0

非常感谢,请尝试:-) – indragie

+0

工作。我最终做的是创建一个独立的类,维护一个共享的授权参考。 – indragie