2009-09-26 64 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