2012-04-09 111 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以获取对其他对象的引用。这不适用于模块化代码。
相关问题