我想在我的数组中抓取一个字符串,将字符串中的第n个字母更改为?,然后将结果打印在文本字段中。问题是我的NSMutableArray被存储到UIPickerView中,我认为最好只是从PickerView读取字符串然后更改第n个字符并打印结果。我正在努力学习如何从拾取器中获取字符串并更改第n个字母。
- (UIView *)viewForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (row == 0 ) {
NSString *originalStringTwo = @"%@", *arrayDictionary;
NSRange two = [originalStringTwo rangeOfString:@"2"];
NSString *newStringTwo = [originalStringTwo stringByReplacingCharactersInRange:two withString:@"?"];
_resultLabel.text = newStringTwo;
}
if (row == 1 ) {
NSString *originalStringThree = @"%@", *arrayDictionary;
NSRange three = [originalStringThree rangeOfString:@"3"];
NSString *newStringThree = [originalStringThreestringByReplacingCharactersInRange:three withString:@"?"];
_resultLabel.text = newStringThree;
}
if ( row == 2 ) {
NSString *originalStringFour = @"%@", *arrayDictionary;
NSRange four = [originalStringFour rangeOfString:@"4"];
NSString *newStringFour = [originalStringFour stringByReplacingCharactersInRange:four withString:@"?"];
_resultLabel.text = newStringFour;
}
return 0;
}
答案 0 :(得分:0)
这不是你创建NSRange
的方式。请改用NSMakeRange
。
// Range from index 1 with length 1, eg. 2nd character:
NSRange two = NSMakeRange(2, 1);
NSString *newStringTwo = [originalStringTwo stringByReplacingCharactersInRange:two
withString:@"?"];
请注意,从GUI元素中获取任何数据(用户输入除外)绝不是一个好主意。如果文本字段应用自定义格式怎么办?
您应该将数据保存在数组中并使用它。