2012-04-09 73 views
1

我設計了一個Web服務應用程序,並通過一些GET請求從我的服務器上獲取應用程序的數據。在我登錄類我進入userdefaults並將其保存到NSUserDefaults的,然後在我的登錄類的viewDidLoad我犯了一個控制,如果userdefaults被保存,我將它們分配給textfield的text屬性。我想要的是從applicationDidFinishLaunchingWithOptions委託方法調用我的登錄類的方法(登錄方法)。下面是一些peoudo代碼:如何從AppDelegate調用不同類的實例方法?

//LoginClass.m 
@implementation LoginClass 
.... 
//needed things... 

-(ibaction)LoginMethod{ 
//the assingments&data fetchings ect 

} 

,我想調用此方法在我AppDelegate類像下面

//....Appdelegate class 
    #import "LoginClass.h" 
    //.....other things.... 
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
    { 
     LoginClass *myObj= [[LoginClass alloc]init]; 
     [myObj LoginMethod]; 
    } 

我怎樣才能做到這一點?總而言之,我如何從AppDelegate類調用其他類的方法? 注:我用NSURLConnections及其委託的方法來獲取數據,處理錯誤等.. 注2:我用標記NSUserDefaults的太多,因爲我用它太(在控制我控制其含量)

編輯控制了我的loginViewController的viewDidLoad中的默認值後,如果默認值中有一個值,我想自動調用我的登錄操作,而不需要用戶點擊。

+0

你可以重構在一個單身的方法呢?因爲單身可以像[UIApplication sharedApplication]一樣使用,並且可以爲您提供所需的方法/常量。 – Panagiotis 2012-04-09 16:02:25

+1

你有什麼問題?您創建一個實例並使用它來調用一個實例方法。 'LoginMethod'以某種方式不被執行? – 2012-04-09 16:04:33

+0

@Panagiotis不,我不能這樣做,但我可以爲 – ilhnctn 2012-04-09 16:13:50

回答

3

由於AppDelegate中通常是創造了這個第一類是在那裏你可以創建你想發送消息的對象。如果這個對象創建它們,那麼這個對象知道它們,並且它可以發送消息。

提醒一句,雖然:

  • 載入中AppDelegate中一切都需要時間。如果你花的時間太長,那麼Springboard將終止你的應用程序。
  • 我也覺得你的設計有點古怪。如果你打算在AppDelegate中創建所有的東西,那麼我懷疑控制流將反彈回AppDelegate以獲取對其他對象的引用。這不適用於模塊化代碼。
相關問題