0

現在、次のコードがあります。

-(void) inputNumber:(int)number {

    NSString *str;

    str = [NSString stringWithFormat:@"%d", number];
    [strVal appendString:str];
    txtShowNum.text = strVal;
}

私はすでに NSMutableString *strVal; を定義しています。私のコードの前に。

上記の関数を実行すると、フィールドは空白のままになりますが、使用する場合:

txtShowNum.text = str;

意図した値を取得しますが、明らかに値を連結する必要があります。

誰でもこれに光を当てることができますか?

ありがとう

4

3 に答える 3

0

NSMutableStringこのメソッドが呼び出される前に、コード内のどこかに も割り当てる必要があります。

たとえば、次のようにします。

-(void) inputNumber:(int)number {
    if ( strVal == nil ) strVal = [[NSMutableString alloc] init];
    NSString *str = [NSString stringWithFormat:@"%d", number];
    [strVal appendString:str];
    txtShowNum.text = strVal;
}

ただし、ここにはいくつかのメモリの問題があります。strVal保持されたプロパティを作成してから、次のことを行うことをお勧めします。

    if ( self.strVal == nil ) self.strVal = [NSMutableString string];
于 2011-04-04T16:23:05.090 に答える
0

あなたはstrValおそらく.nilappendString:

于 2011-04-04T16:24:48.590 に答える
-4

メンバー変数として宣言したばかりの場合は、必ずどこかで初期化してください。

NSMutableString* strVal = @"";

そうでない場合は、nil オブジェクトでメソッドを呼び出しているだけです。

于 2011-04-04T16:29:25.437 に答える