NSRange长度更改为0

时间:2013-10-04 19:43:18

标签: nsrange

我有这段代码:

    for (TFHppleElement *element in htmlNodes) {

    if (![element.tagName isEqual:@"img"]) {

        NSString *elementHtmlCode = htmlCode;

        if (element.text != nil) {

            NSString *elementText = element.text;

            NSRange textRange = [elementHtmlCode rangeOfString:elementText];

            elementHtmlCode = [elementHtmlCode stringByReplacingCharactersInRange:textRange withString:word];

            [htmlCode setString:elementHtmlCode];

            for (TFHppleElement *child in element.children) {

                if (child.text != nil) {

                    NSString *childText = child.text;

                    NSString *childHtmlCode = htmlCode;

                    NSRange textRange = [childHtmlCode rangeOfString:childText];

                    childHtmlCode = [childHtmlCode stringByReplacingCharactersInRange:textRange withString:word];

                    [htmlCode setString:childHtmlCode];

                }
            }
        }
    }
}

我的问题是在第一个完整循环完成后再次进入:

NSRange textRange = [elementHtmlCode rangeOfString:elementText];
elementHtmlCode = [elementHtmlCode stringByReplacingCharactersInRange:textRange withString:word];

我在textRange.length上得到0。

我在这一行设置了一个断点,我可以看到在运行这一行后,长度值变为0。

我缺少什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

rangeOfString:如果没有在接收者中找到指定的字符串,则返回{NSNotFound,0} rect。 检查两个对象'首先是value元素HTMLCode和elementText。 请参阅代码的上下文,可以使用两个字符串的任何值。 享受!