我正在开发键盘的简单应用。我正在使用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;
}
此处,dialedNumber
是NSString
变量。
为什么它会在stringByAppendingString
崩溃?
任何帮助都将不胜感激。
答案 0 :(得分:0)
如果您不熟悉内存管理,请尝试使用属性而不是实例变量。
答案 1 :(得分:0)
你必须只创建一次dialedNumber,并在updateEditTextWithPressedDigit超出范围后清理它。考虑使dialedNumber成为实现所示方法的对象的属性,并使用self.dialedNumber或_dialedNumber访问它。