为什么在这个参数中使用for循环

时间:2011-08-17 23:49:03

标签: iphone objective-c ios xcode

    for (int i=0; i<[rawNumber length]; i++) {
        NSString* chr = [rawNumber substringWithRange:NSMakeRange(i, 1)];
        if(doesStringContain(@"0123456789", chr)) {
            telNumber = [telNumber stringByAppendingFormat:@"%@", chr];
        }
    }

这是什么逻辑?这个论点的回归是什么?

1 个答案:

答案 0 :(得分:5)

看起来它正在剥离所有非数字字符,为您提供一个普通的旧电话号码。

我想telNumber是在这个循环之前定义的,并且在其他地方使用了telNumber的值。

让我们说rawNumber保持以下价值:(987)-654-3210。 for循环总共运行14次,因为这是rawNumber的长度。每次通过时,代码都会获得一个字符 - 第一次获取第一个字符,第二次获取第二个字符等。每次循环时,代码都会检查字符是否在字符串0123456789中;如果是,则代码将该字符附加到telNumber变量。如果字符不在数字列表中(如果在我们的示例中为()-),那么它就会被丢弃。