nr5*_*nr5 1 objective-c ios objective-c-blocks completionhandler
我写了很多完成块,但不知道为什么会这样。如果我们使用适当的参数调用块,则基于块的函数的控制不应继续进行。但就我而言,它正在这样做。
- (void) validateFormWithCompletion: (void(^)(BOOL valid)) completion
{
if (! [NetworkConstant appIsConnected])
{
[[AppThemeManager sharedInstance] showNoInternetMessage];
completion(NO);
}
emailIdTF.text = [emailIdTF.text trimWhiteSpaceAndNextLine];
if (emailIdTF.text.length == 0)
{
[[AppThemeManager sharedInstance] showNotificationWithTitle:@"Incomplete" subtitle:@"Please fill in a valid email id" duration:durationForTSMessage withTypeOfNotification:notificationWarning];
completion(NO);
}
else
{
completion(YES);
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有 Internet 连接,则控件应从第一次出现完成 (NO); 时返回。但相反,它前进到电子邮件长度检查。我在这里做错了吗?
如果我理解你的问题,你需要添加一个return.
if (! [NetworkConstant appIsConnected])
{
[[AppThemeManager sharedInstance] showNoInternetMessage];
completion(NO);
return;
}
Run Code Online (Sandbox Code Playgroud)
return如果没有网络连接,这会阻止方法的其余部分被执行。
似乎也没有理由使用完成处理程序。您的方法中没有异步处理。
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |