通过 UTF8string 方法从 NSString 转换后,是否可以从 ac 字符串中替换字符?
例如下面的代码。它是用特定的规则格式化一个字符串。
- (NSString *)formatString:(NSString *)input {
if (input.length==0) {
return @"";
}
//code to determine rule
....
....
// substitute output format with input characters
if (rule) {
input = [input substringFromIndex:prefix.length];
char *string = (char *)[rule UTF8String];
int repCount = 0;
for (int i=0; i<rule.length; i++) {
if (string[i] == '#') {
if (repCount < input.length)
string[i] = [input characterAtIndex:repCount++];//bad access
else
string[i] = ' ';
}
}
NSMutableString *output = [NSMutableString stringWithCString:string encoding:NSUTF8StringEncoding];
...
... //do something with the output
return output;
} else {
return input;
}
}
最初 string[0] 有 '#' 并且它应该被替换为输入中的字符。这没有发生。