用String中的对象替换String

时间:2014-09-09 15:27:10

标签: objective-c arrays string replace

您好我正在构建一个iPhone应用程序,它从本地文件加载一个html字符串并对其进行编辑。此htm文件包含一个包含多个单元格的表。每个细胞的内容是cell0,cell1,cell2,cell3等......

我正在做的是用数组中的数据替换这些单元格的内容。我首先在htm文件中搜索字符串,然后将其替换为数组中的字符串:

[modifiedHtm replaceOccurrencesOfString:@"cell0" withString:[array objectAtIndex:0] options:0 range:NSMakeRange(0, modifiedHtm.length)];
[modifiedHtm replaceOccurrencesOfString:@"cell1" withString:[array objectAtIndex:1] options:0 range:NSMakeRange(0, modifiedHtm.length)];
[modifiedHtm replaceOccurrencesOfString:@"cell2" withString:[array objectAtIndex:2] options:0 range:NSMakeRange(0, modifiedHtm.length)];
[modifiedHtm replaceOccurrencesOfString:@"cell3" withString:[array objectAtIndex:3] options:0 range:NSMakeRange(0, modifiedHtm.length)];

每个单元格都被数组中的相应对象替换,即cell2被数组的对象2替换。

这个数组很长,我有几个,每个都有不同数量的对象。

有没有办法告诉它替换字符串" cell(n)" with String [array objectAtIndex:(n)]其中n是0到75之间的整数?

1 个答案:

答案 0 :(得分:1)

没有这样的方法,但您可以通过将其放入循环中手动轻松完成,如下所示:

for (int i = 0; i < array.count; i++) {
    NSString *cellString = [NSString stringWithFormat:@"cell%d", i];
    [modifiedHtm replaceOccurrencesOfString:cellString withString:[array objectAtIndex:i] options:0 range:NSMakeRange(0, modifiedHtm.length)];
}

如果你为每个单元格执行此操作,只需将其显示在单元格中,最佳解决方案是将其放入cellForRowAtIndexPath:方法:

NSString *cellString = [NSString stringWithFormat:@"cell%d", indexPath.row];
        [modifiedHtm replaceOccurrencesOfString:cellString withString:[array objectAtIndex:indexPath.row] options:0 range:NSMakeRange(0, modifiedHtm.length)];

希望得到这个帮助。