0

配列内の文字列を取得し、文字列の 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;
}
4

1 に答える 1

0

それはあなたがを作成する方法ではありませんNSRangeNSMakeRange代わりに使用してください。

// Range from index 1 with length 1, eg. 2nd character:
NSRange two = NSMakeRange(2, 1);
NSString *newStringTwo = [originalStringTwo stringByReplacingCharactersInRange:two
                          withString:@"?"];

GUI要素(ユーザー入力を除く)からデータを取得することは決して良い考えではないことに注意してください。テキストフィールドがカスタムフォーマットを適用する場合はどうなりますか?

データを配列に保持して使用する必要があります。

于 2012-10-08T16:55:33.040 に答える