【问题标题】:NSLog from appDelegate来自 appDelegate 的 NSLog
【发布时间】:2014-01-31 12:01:53
【问题描述】:

在 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 方法中工作...

谢谢

【问题讨论】:

  • 如果它没有记录任何东西,甚至是硬编码的字符串,要么它没有被调用,要么你运行的应用程序版本与你想象的不同。 (今天发生在我身上!)您能否以其他方式将字符串显示到屏幕上,例如通过设置标签的文本或其他方式?

标签: objective-c ios7 nslog


【解决方案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 的文档以及相关的应用生命周期文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多