0

我是 iOS 新手,仍在学习如何做事的正确方法。另一个刚刚浮现的问题,我怎样才能停止执行基于条件的方法并返回调用代码?通常在 PHP 中,我只是简单地返回true/false或抛出异常,而不是在嵌套条件中塞入大量代码,但在 iOS 中,我不允许从具有 IBAction 返回签名的方法返回。

处理这种针迹的首选方法是什么?

- (IBAction)submitCode:(id)sender
{
    if ([codeEntry.text length] == 0) {

        UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Form Validation"                                                         message:@"No code entered, please try again."
            delegate:nil
            cancelButtonTitle:@"OK"
            otherButtonTitles:nil];

            [message show];

        // IOS not allowing this
        return NO;
    }

    // Prefer not to wrap the rest of the logic in an else, rather just cease
    // execution and return back to calling code

    NSLog(@"I would have submitted!");
}
4

2 回答 2

1

只需使用

return;

这将停止当前方法的执行。

由于IBAction是秘密typdef'ed to void,你不能返回任何东西。什么都不是什么都不是,所以只需使用return;.

于 2013-05-24T18:13:42.187 回答
1

你需要打电话return;,不是return NO;

IBAction真的void。这意味着该方法没有返回值。

于 2013-05-24T18:13:56.227 回答