2012-03-30 11 views
0

私はdidFinishLaunchingWithOptionsメソッドでSOAPを使用して解析していますが、初めてアプリケーションを起動するときだけです。 問題は、XMLを使用して解析される前に、私の見解では、呼び出される、あるいくつかの遅延の後にdidFinishLaunchingWithOptionsを呼び出す方法

- (無効)パーサ:(NSXMLParser *)パーサーdidEndElement:(NSStringの*)がelementName名前空間URI:(NSStringの*)名前空間URI修飾名:(NSStringの(のUIApplication *)アプリケーションdidFinishLaunchingWithOptions:(NSDictionaryの*)launchOptions {*)QNAME

マイdidFinishLaunchingWithOptionsは

  • (BOOL)アプリケーションのようなものですNSStringの* SOAPMessageの= [NSStringのstringWithFormat:...................

// SOAPとここにすべて

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

これを呼び出すことはできません。 self.window.rootViewController = self.viewController; [self.window makeKeyAndVisible]; return YES;

一回 - (無効)パーサ:(NSXMLParser *)パーサーdidEndElement:(NSStringの*)がelementName名前空間URI:(NSStringの*)名前空間URI修飾名:(NSStringの*)QNAME が終了し、私が手を取得します結果の文字列

現在、私は次のビューで、いつか後に結果の文字列を得ました。 結果の文字列を取得したら、次のビューを呼び出すだけです。

どうすれば入手できますか?

よろしくお願いします。

+0

非同期操作を同期操作に変更したいと思うようです。 – onnoweb

+0

ウォッチドッグタイマーがタイムアウトする可能性があるので、これは良い選択ではないと思います。 –

+0

私はこのアクションをどのように実行できますか、最も適切な方法は何ですか? – iscavengers

答えて

2

私は間違ったアプローチを選択しています。 Appleは5秒以内にアプリを起動する必要があります。あなたの解析に問題がある場合(ネットワーク接続不良など)、解析が完了する前にアプリケーションが終了し、View Controllerは表示されません。

XMLParsingコードを別のクラスに配置し、解析が完了したらAppDelegateでコールバックを実行する必要があります。次に、必要に応じて(たとえば、tableViewで '-reloadData'を呼び出すことによって)解析結果をビューコントローラのプロパティとして設定し、インターフェイスを更新します。

+0

正確に何が欲しいのですか、私の解析が終わったら、viewdidloadを呼び出すかviewを表示します。私は条件を置くことができます。結果が得られたら、私は次のビューに移動します。それ以外の場合は警告を表示できます。しかし、私の主な目的は、構文解析が完了したらビューを開くことです。どのように私はそれを行うことができますか? – iscavengers

関連する問題