didFinishLaunchingWithOptions не находит корневого контроллера - PullRequest
0 голосов
/ 27 января 2012

Мне нужно проанализировать некоторый XML, который запускает NSURLConnection.После завершения анализа я получаю некоторые данные и затем устанавливаю контроллер корневого представления.Моя проблема заключается в том, что application: didFinishLaunchingWithOptions: возвращается до метода composeRootController, и возникает ошибка, поскольку приложение не может найти корневой контроллер представления.Как я могу ждать, пока composeRootController вернется?

Мой код следующий:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self xmlConnect];
    return YES;
}

здесь функция xmlConnect реализована для анализа

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    //convertim la data a string
    NSString *receivedDataAsString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
    NSLog(@"connectionDidFinishLoading %@", receivedDataAsString);

    //xml parsing
    xmlParser = [[NSXMLParser alloc] initWithData:receivedData];
    [xmlParser setDelegate:self];

    self.receivedData = nil;

    BOOL success = [xmlParser parse];

    if(success)
        NSLog(@"No Errors");
    else
        NSLog(@"Error Error Error!!!");

    [self composeRootController];
}

здесь composeRootController устанавливает rootcontroller

1 Ответ

0 голосов
/ 27 января 2012

Поместите ваш

 [self composeRootController];

в didFinishLaunching ...

И вызовите composeRootController для xmlConnect.

Возможно, вам придется переместить метод xmlConnect из вашего делегата приложения,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...