NSLog из appDelegate

Внутри AppDelegate.m я пытаюсь получить материал из строки, которую я получаю из входящего URL-адреса. Я не уверен, почему NSLog ничего не печатает...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions openURL:(NSURL *)url
{
    // incoming URL...
    // i.e.  palsvid://blabla.com/foo.php?request=laa&id=1004


    NSString *q = [url query];

    NSLog(@"%@",q); // Does not log anything! Even with a hard coded string!

    NSArray *pairs = [q componentsSeparatedByString:@"&"];
    // ...

Я делаю что-то неправильно? Я обновляю plist, чтобы принять URL-адрес, теперь я хочу его проанализировать.

В конце концов я возьму эти данные и использую их в своем ViewController. NSLog работает в методах ViewController...

Спасибо


person broinjc    schedule 31.01.2014    source источник
comment
Если он ничего не регистрирует, даже жестко запрограммированную строку, либо он не вызывается, либо вы используете другую версию приложения, чем вы думаете. (Это случилось со мной сегодня!) Не могли бы вы отобразить строку на экране каким-либо другим способом, например, установив текст метки или что-то в этом роде?   -  person user1118321    schedule 31.01.2014


Ответы (1)


У вас неправильная сигнатура метода, поэтому ваш метод никогда не вызывается. Параметр openURL: отсутствует. Вы хотите:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // your code here
}

Это вызывается, когда ваше приложение запускается с нуля.

Чтобы обработать вызов вашего приложения из другого приложения или отправку URL-адреса, вам необходимо реализовать следующее:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    // process URL here
}

Прочтите документацию по UIApplicationDelegate, а также документацию по жизненному циклу приложения.

person rmaddy    schedule 31.01.2014