我向textfields输入了一些文本,以显示在labels某些肥皂字段上。在“显示多少个电台”中输入2时textfield

<stationName>ABC</stationName>
<stationName>XYZ</stationName>


我想在labels上显示这些输出。

我有2个标签。 Label1Label2

如果工作站名称的计数大于2,则label1等于工作站名称1,label2等于工作站名称2

如何查看电台名称的计数并在2个标签上显示?

此代码仅在标签上显示一个电台。

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName    namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{

    if ( [elementName isEqualToString:@"stationName"] ) {
        if (!retornoSOAP)
        {
            retornoSOAP = [[NSMutableString alloc] init];
        }
        teveRetorno = YES;
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    if (teveRetorno)
    {
        [retornoSOAP appendString:string];
    }
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ( [elementName isEqualToString:@"stationName"] )
    {
        Label1.text = retornoSOAP;
        retornoSOAP = nil;
        teveRetorno = NO;

        NSLog(@"LOG Message = %@", retornoSOAP);
    }
}

最佳答案

您不保存结果以供演示吗?那可能是您可以使用array.count查找的地方。

否则,您可以通过计数器扩展parse:didStartElement方法

int numberOfStations = 0;

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{

    if ( [elementName isEqualToString:@"stationName"] )
    {
        numberOfStations++;

        if (!retornoSOAP)
        {
            retornoSOAP = [[NSMutableString alloc] init];
        }
        teveRetorno = YES;
    }
}

10-08 13:47
查看更多