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最有可能是nil,所以你调用appendString:nil 基本上什么都不做,并且将文本字段设置为 nil 将删除其内容。

于 2011-04-04T16:24:48.590 回答
-4

如果您只是将其声明为成员变量,请确保在某处对其进行了初始化:

NSMutableString* strVal = @"";

如果没有,你只是在一个 nil 对象上调用一个方法。

于 2011-04-04T16:29:25.437 回答