簡體   English   中英

如何從AppDelegate調用不同的class的實例方法?

[英]How to call an instance method of a different class from AppDelegate?

我設計了一個 web 服務應用程序,並通過一些 GET 請求從我的服務器獲取應用程序的數據。在我的登錄名 class 中,我輸入 userdefaults 並將它們保存到 NSUSerDefaults,然后在我的登錄名 class 的viewDidLoad中,如果保存了 userdefaults,我做了一個控制,我將它們分配給文本字段的文本屬性。 我想要的是從applicationDidFinishLaunchingWithOptions委托方法調用我的登錄 class 的方法(登錄方法)。 下面是一些偽代碼:

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

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

}

我想在我的 appdelegate class 中調用這個方法,如下所示

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

我怎樣才能做到這一點? 總之,我如何從 AppDelegate class 調用其他類的方法? 注意:我使用NSURLConnections及其委托方法來獲取數據、處理錯誤等。注意 2:我也使用 NSUserDefaults 標記,因為我也使用它(在控制中我控制它的內容)

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

由於 AppDelegate 通常是第一個 class 創建的,因此您可以在此處創建要發送消息的對象。 如果這個 object 創建了它們,那么這個對象就知道它們並且可以向它發送消息。

不過,請注意:

  • 在 AppDelegate 中加載所有內容需要時間。 如果你花的時間太長,那么 Springboard 將終止你的應用程序。
  • 我也認為你的設計有點簡單。 如果您要在 AppDelegate 中創建所有內容,那么我懷疑控制流將反彈回 AppDelegate 以獲取對其他對象的引用。 這不適用於模塊化代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM