我是 Objective-C 编程和 X-Code 的新手,所以请多多包涵。我从一本关于目标 C 的书中复制了代码来制作一个计算器类,它创造了奇迹。然后它要求我在练习中添加一个转换按钮,将分数转换为双精度并打印出来。问题是当我按下转换按钮时,应用程序停止并且我收到一条消息说程序收到了 SIGABRT 信号。
这是按钮代码:
-(IBAction)clickConvert //convert method
{
if ( [myCalculator accumulator] != 0 ){
displayString = [NSString stringWithFormat: @"%e", [myCalculator convertResult]];
display.text = displayString;
[displayString setString:@""];
}}
转换结果代码:
-(double) convertResult
{
double convertedFraction;
convertedFraction = [accumulator convertToNum];
return convertedFraction;
}
(累加器是一个 Fraction 对象,其中包含对 2 个操作数进行的数学运算的值)
和 ConverToNum 函数:
-(double) convertToNum
{
if (denominator != 0)
return (double) numerator/denominator;
else
return NAN;
}
应用程序中的其他所有内容都可以正常工作,因此我所做的事情一定有问题……有人可以帮忙吗?我整天都在网上搜索,但我读到了关于这个 SIGABRT 错误的完全不同的东西。谢谢您的帮助