2012-04-09 5 views
1

Я разработал приложение веб-службы и извлек данные приложения с моего сервера с помощью некоторых запросов GET. В моем классе входа я ввел userdefaults и сохранил их в NSUSerDefaults, а затем в viewDidLoad моего класса входа я сделал элемент управления, если userdefaults сохранены, я передаю их текстовому свойству текстового поля. Я хочу назвать этот метод (метод входа) моего класса входа из метода делегата 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 тоже, потому что я использую его тоже (в управлении я контролировать его содержание)

EDITПосле контроля значений по умолчанию в моем представлении loginViewControllerDidLoad, если есть значение по умолчанию, я хочу автоматически вызывать свое действие для входа, без необходимости кликов пользователя.

+0

Можете ли вы реорганизовать эти методы в одноэлементном режиме? Поскольку синглтоны могут использоваться в значительной степени подобно [UIApplication sharedApplication] и могут дать вам нужные вам методы/константы. – Panagiotis

+1

Что на самом деле неправильно с тем, что у вас есть? Вы создаете экземпляр и используете его для вызова метода экземпляра. Является ли 'LoginMethod' каким-то образом не выполняемым? –

+0

@Panagiotis нет, я не могу сделать это на данный момент, но я могу работать для этого – ilhnctn

ответ

3

Поскольку AppDelegate обычно является первым созданным классом, здесь вы можете создавать объекты, которые хотите отправлять сообщениям. Если этот объект создает их, то эти объекты знают о них и могут отправлять сообщения.

Слово предостережения, хотя:

  • Загрузка все в вашем AppDelegate собирается занять некоторое время. Если вы займете слишком много времени, то Springboard прекратит ваше приложение.
  • Я также думаю, что ваш дизайн немного прост. Если вы собираетесь создавать все в AppDelegate, то я подозреваю, что поток управления будет возвращаться к AppDelegate для получения ссылок на другие объекты. Что не делает для модульного кода.
Смежные вопросы