1

プロジェクトでgoogleweatherapiを使用したいと思います。ここで私は長い間苦労しています。現在の温度を取得します。都市、湿度、曜日など

URLを正常にヒットしました。しかし、値をフェッチするためにfoundCharacterメソッドで何をするのか正確にはわかりません。

ありがとう

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname       namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
    if ([elementname isEqualToString:@"weather"]) 
    {
            currentTweet = [Tweet alloc];
    }
}

 - (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
    if ([elementname isEqualToString:@"city"]) 
     {

     }
 }
4

1 に答える 1

1

コードを確認してください:

- (void) parser:(NSXMLParser *)parser didStartElement:(NSString *)elementname       namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementname isEqualToString:@"weather"]) 
    {
            currentTweet = [Tweet alloc];
    }
    else if ([elementname isEqualToString:@"city"]) 
    {
          currentTweet.city = [attributeDict valueForKey:@"city"]
    }
}

- (void) parser:(NSXMLParser *)parser didEndElement:(NSString *)elementname namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
 {
    if ([elementname isEqualToString:@"weather"]) 
     {
           NSLog("Current City: %@",currentTweet.city);
     }
 }

このタイプのxmlでは、parser:foundCharacters:

メソッドに関するNSXMLPareserリファレンスガイドからの引用foundCharacters

現在の要素の文字のすべてまたは一部を表す文字列をデリゲートに提供するために、パーサーオブジェクトによって送信されます。

パーサーオブジェクトは、要素の文字を報告するために、デリゲートにいくつかのparser:foundCharacters:メッセージを送信する場合があります。文字列は現在の要素の合計文字コンテンツの一部にすぎない可能性があるため、要素が変更されるまで、文字列を現在の文字の累積に追加する必要があります。

詳細については、 NSXMLパーサーリファレンスパーサーの動作、foundCharacters使用

于 2012-07-25T17:14:26.367 に答える