0

我正在开发简单的键盘应用程序。在这我使用stringByAppendingString. 此 api 在 iOS 6 中运行良好,但在 iOS7 中崩溃。下面是我的代码,

-(void)updateEditTextWithPressedDigit:(NSInteger)buttonTag :(UIButton *)button
{
    switch (button.tag) 
    {
        case 10:
            dialedNumber = [dialedNumber stringByAppendingString:@"0"];
            break;
        case 11:
            dialedNumber = [dialedNumber stringByAppendingString:@"*"];
            break;
        case 12:
            dialedNumber = [dialedNumber stringByAppendingString:@"#"];
            break;
        default:
            dialedNumber = [dialedNumber stringByAppendingString:[NSString stringWithFormat:@"%d",buttonTag]];
            break;
    }

    dialedDigitField.text = dialedNumber;
}

这里,dialedNumberNSString可变的。

为什么它会崩溃stringByAppendingString

任何帮助将不胜感激。

4

2 回答 2

0

您必须只创建一次 dialedNumber,并且在 updateEditTextWithPressedDigit 超出范围后对其进行清理。考虑将 dialedNumber 作为实现所示方法的对象的属性,并使用 self.dialedNumber 或 _dialedNumber 访问它。

于 2013-09-27T11:53:50.920 回答
0

如果您对内存管理不是很熟悉,请尝试使用属性而不是实例变量。

于 2013-09-27T11:17:44.077 回答