0

我有这个代码:

    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。

我错过了什么?

谢谢!

4

1 回答 1

0

rangeOfString:如果在接收器中没有找到指定的字符串,则返回一个 {NSNotFound, 0} 矩形。首先检查两个对象的值 elementHtmlCode 和 elementText。请参阅代码的上下文,这两个字符串可以使用任何值。享受!

于 2013-12-17T09:39:21.947 回答