模拟启动选项

时间:2012-01-04 10:54:41

标签: ios xcode ipad debugging launching-application

在我的appDelegate中,当使用来自邮件应用程序的文件启动应用程序时,我有一些规范。

当我启动我的应用程序时,一切正常。当我通过Mail中的文件启动应用程序时,应用程序崩溃了。不幸的是,我无法调试它,因为我无法模拟launchingOptions。此刻,我建立并运行,然后断开iPad,关闭我的应用程序,然后去邮件等...有没有办法调试?

Appdelegate.m

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

NSURL *url = (NSURL *)[launchOptions valueForKey:UIApplicationLaunchOptionsURLKey];

IntroViewController *introViewController = (IntroViewController *)self.window.rootViewController;

if (url !=nil) {
    if ([url isFileURL]) {
        introViewController.fileUrl = url;
    }


}

NSLog(@"%@",[url path]);

return YES;
}

IntroViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    NSLog(@"Hello");
    if (fileUrl != nil) {
        IntroTableViewController* introTable = (IntroTableViewController *)segue.destinationViewController;            
        introTable.openedByURL = [fileUrl path];

        TabBarController* tabBarController = (TabBarController *)segue.destinationViewController;
        UINavigationController* navigationController = (UINavigationController *)[[tabBarController viewControllers] objectAtIndex:0];
        TargetLSController* targetViewController = (TargetLSController *)[[navigationController viewControllers] objectAtIndex:0];
        NSString *urlPath = [fileUrl path];
        targetViewController.currentFilePath = urlPath;
        NSLog(@"%@",urlPath);
    }
}

- (void)viewDidAppear:(BOOL)animated
{
    [self performSegueWithIdentifier:@"Launch" sender:self]; 
    NSLog(@"%@",fileUrl);
}

1 个答案:

答案 0 :(得分:13)

(猜猜你使用Xcode 4.x)

Product -> Edit Scheme...以及Run <appname>.app下的第一个标签Launch}中有Info个选项。选择Wait for <appname.app>启动。现在当你执行build&amp;运行(或只是运行),调试器将等待您手动启动应用程序。