解析类将最后一项写入两次

时间:2012-09-03 17:45:11

标签: objective-c ios arrays parsing nsscanner

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

<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? 

感谢您的帮助!

的Matthias

1 个答案:

答案 0 :(得分:0)

检查someArray的计数,

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

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

如果它是7,那么某处出现问题,需要进行排序

希望第一个条件成立。