2012-03-30 35 views
0

我在didFinishLaunchingWithOptions方法中使用SOAP进行解析,仅在首次启动应用程序时使用SOAP。 的问题是,在xml使用解析之前我的观点被称为如何在延迟一段时间后调用didFinishLaunchingWithOptions

- (空)解析器:(的NSXMLParser *)解析器didEndElement:(的NSString *)的ElementName的namespaceURI:(的NSString *)的namespaceURI的qualifiedName:(的NSString *)QNAME

我didFinishLaunchingWithOptions就像

  • (BOOL)应用:(UIApplication的*)应用didFinishLaunchingWithOptions:(NSDictionary的*)launchOptions { 的NSString *的SOAPMessage = [的NSString stringWithFormat:...................

//这里的一切都与SOAP

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

我想调用这个 self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; 返回YES;

一次我

- (空)解析器:(的NSXMLParser *)解析器didEndElement:(的NSString *)的ElementName的namespaceURI:(的NSString *)的namespaceURI的qualifiedName:(的NSString *)QNAME 被完成,我得到结果字符串。

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

我该怎么做?

最好的问候

+0

看来你想把一个异步操作变成一个同步操作。 – onnoweb 2012-03-30 15:57:25

+0

我认为这不是一个好的选择,因为看门狗定时器可能会超时。 – 2012-03-30 18:20:09

+0

比我如何执行此操作,最适合的方式是什么? – iscavengers 2012-03-31 02:26:27

回答

2

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

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

+0

什么我想要的是,我想调用viewdidload或viewwill,一旦我的解析完成。我可以把条件,如果我得到的结果,我会移动到我的下一个视图,否则,我可以显示alert.But我的主要目的是打开视图,一旦解析完成。我怎么能做到这一点? – iscavengers 2012-03-30 16:17:44

相关问题