【问题标题】:How to call didFinishLaunchingWithOptions after some delay延迟一段时间后如何调用 didFinishLaunchingWithOptions
【发布时间】:2012-04-14 08:00:00
【问题描述】:

我在 didFinishLaunchingWithOptions 方法中使用 SOAP 进行解析,仅在应用程序第一次启动时。 问题是,我的视图在使用

解析 xml 之前被调用

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURIqualifiedName:(NSString *)qName

我的 didFinishLaunchingWithOptions 就像

  • (BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSString *soapMessage = [NSString stringWithFormat:........

//这里的一切都使用 SOAP

self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 返回是; }

我想叫这个 self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 返回是;

曾经是我的

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURIqualifiedName:(NSString *)qName 完成,我得到结果字符串。

目前,我在下一个视图中得到了结果字符串。 一旦我得到结果字符串,我只想调用下一个视图。

我怎样才能得到它?

最好的问候

【问题讨论】:

  • 您似乎想将异步操作转换为同步操作。
  • 我认为这不是一个好的选择,因为看门狗定时器可能会超时。
  • 那我该如何执行这个动作,最合适的方式是什么?

标签: iphone


【解决方案1】:

我认为您选择了错误的方法。 Apple 要求应用程序在 5 秒内启动。如果您的解析有问题(例如由于网络连接不良),那么您的应用将在解析完成之前关闭,并且您的视图控制器将永远不会显示。

您应该将 XMLParsing 代码放在一个单独的类中,并在解析完成后对 AppDelegate 执行回调。然后将解析结果设置为视图控制器的属性,并在需要时更新接口(例如,通过在 tableView 上调用“-reloadData”)。

【讨论】:

  • 我真正想要的是,一旦我的解析完成,我想调用 viewdidload 或 viewwill 出现。我可以设置条件,如果我得到结果,我将转到下一个视图,否则,我可以显示警报。但我的主要目的只是在解析完成后打开视图。我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 2018-09-03
  • 1970-01-01
  • 2013-11-19
  • 2017-06-01
  • 2022-07-29
  • 2012-01-28
相关资源
最近更新 更多