将此代码添加到简单的计算器程序时,我收到错误消息“控件到达非空函数的末尾”。
现在,在阅读了一些回复后,我知道我应该添加一个返回调用,这样程序就不会在没有设置累加器的情况下挂起,但我想知道把它放在哪里或者哪个是正确的表达方式。
谢谢,如有任何帮助,我们将不胜感激。如果需要,我也可以提供完整的程序代码。
-(double) changeSign
{
accumulator = -accumulator;
}
-(double) reciprocal
{
accumulator = 1/accumulator;
}
-(double) xSquared
{
accumulator = accumulator * accumulator;
}
最佳答案
非常简单,这里的每个方法都被声明为返回一个double
,但实际上您从未返回任何东西。
你需要做类似的事情:
-(double) changeSign
{
accumulator = -accumulator;
return accumulator;
}
或者,如果您不打算返回 accumulator
的新值,请将返回类型更改为 void
:
-(void) changeSign
{
accumulator = -accumulator;
}
附言。问题不在于程序将“在未设置累加器的情况下挂起”。你说的是“这里是一个返回 double
的方法”,但代码实际上并没有返回任何东西。错误消息的意思是“我已经完成了你 promise 会返回一些东西的函数,但你似乎忘记了”。
关于objective-c - 在 Xcode 中收到 "Control reaches end of non-void function"错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645266/