iOS 7在stringByAppendingString上生成崩溃,这在iOS 6中运行良好

时间:2013-09-27 11:00:09

标签: objective-c nsstring ios7

我正在开发键盘的简单应用。我正在使用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崩溃?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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