在Xcode中接收"控制到达非空函数的结尾"错误消息

Jon*_*olo 5 xcode objective-c calculator

将此代码添加到简单的计算器程序时,我收到错误消息"Control reach end of non-void function".

现在在阅读了一些回复之后,我知道我应该添加一个返回调用,以便程序不会在未设置累加器的实例中挂断,但我想知道放置它的位置或者哪个是正确的方法这句话.

谢谢,任何帮助将不胜感激.如有必要,我也可以提供完整的程序代码.

-(double) changeSign
{
accumulator = -accumulator;
}

-(double) reciprocal
{
accumulator = 1/accumulator;

}

-(double) xSquared
{
accumulator = accumulator * accumulator;
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*har 7

很简单,你在这里的每个方法都被声明为返回a double,但你实际上从未返回任何东西.

你需要做一些事情:

-(double) changeSign
{
accumulator = -accumulator;
return accumulator;
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您不打算返回新值accumulator,请将返回类型更改为void:

-(void) changeSign
{
accumulator = -accumulator;
}
Run Code Online (Sandbox Code Playgroud)

PS.问题不在于程序将"在未设置累加器的情况下挂断".这就是你说"这里有一个返回的方法double",但代码实际上并没有返回任何内容.错误消息的意思是"我已经完成了这个函数,你承诺会返回一些东西,但你似乎已经忘记了".