0

プライベートチャットアプリケーションを作成していますが、次のような問題が発生しています-

1.前回のチャットを複数回受信することがあります。2.大きな画像のように長いデータが表示されない場合があります。

このコードを使用して、5秒ごとにWebサービスを呼び出しています-

NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:
                 [self methodSignatureForSelector: @selector(getNewMessages)]];
       [invocation setTarget:self];
        [invocation setSelector:@selector(getNewMessages)];
        timer1 = [NSTimer scheduledTimerWithTimeInterval:5.0 invocation:invocation repeats:YES];

したがって、完全なデータを受信した後に Web サービスを呼び出す適切な方法は何かを尋ねたいと思います。NSXMLParser を使用してデータを取得しています。

4

2 に答える 2

3

これを処理するには2つの方法があります -

1)最初のリクエストの完全なデータを受け取ったら、以下のメソッドで別のリクエストを呼び出すことができます

-(void) connection:(NSURLConnection *) connection didReceiveData:(NSData *) data 

2)解析が終了したら、別のリクエストをトリガーできます-

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
于 2012-12-13T05:54:21.433 に答える
0

ここを見て、objective-c で最適な xml パーサーを選択するためのアイデアを提供してください。

問題を解決する可能性がある NSXML パーサーよりも xml を解析する方が非常に高速であるため、TBXML パーサーを使用してみてください。

于 2012-12-13T05:50:42.523 に答える