1

我很无奈。我解析这段文字...

<parse>HELLO</parse>
<parse>World</parse>
<parse>digit</parse>
<parse>wow</parse>
<parse>hellonewitem</parse>
<parse>lastitem</parse>

使用 NSScanner 的实例:

    -(NSMutableArray *)parseTest
{

    if (parserTest != NULL)
    {

        NSScanner *scanner = [[NSScanner alloc] initWithString:parserTest];
        NSString *test;
        NSMutableArray *someArray = [NSMutableArray array];

        while ([scanner isAtEnd]!=YES)
        {

            [scanner scanUpToString:@"<parse>" intoString:nil];
            [scanner scanString:@"<parse>" intoString:nil];
            [scanner scanUpToString:@"</parse>" intoString:&test];
            [scanner scanString:@"</parse>" intoString:nil];


            [someArray addObject:test];

            NSLog(@"%@",test);


        }
        return someArray;
    }

无法理解为什么我在返回的数组中两次获取最后一个对象。我错过了什么?是否有问题:

[scanner isAtEnd]!=Yes? 

谢谢你的帮助!

马蒂亚斯

4

1 回答 1

0

检查 someArray 的计数,

NSLog(@"%d",[someArray count]);

如果是 6,那么你在打印值时做错了。

否则,如果是 7,那么某个地方出了问题,需要排序

希望第一个条件成立。

于 2012-09-03T19:26:51.533 回答