为啥我的完成处理程序永远不会被调用?

Posted

技术标签:

【中文标题】为啥我的完成处理程序永远不会被调用?【英文标题】:Why my completion handler is never called?为什么我的完成处理程序永远不会被调用? 【发布时间】:2019-11-21 09:09:38 【问题描述】:

我正在尝试调用完成处理程序,但它从未被调用过。 我做错了什么?

我看到第一个 NSLog(“进入我的第二个函数”),但第二个 NSlog(“完成处理程序”)从未出现在我的控制台中。

这里是函数的定义和带有完成的调用者

- (void)myFirstFunction:(BOOL)selected numberOfBrothers:(int)brothers completion:(void (^)(void))completion

- (void)mySecondFunction

    NSLog(@"Enter in my Second function");
   [self myFirstFunction:true
        numberOfBrothers:1
        completion:^
           NSLog(@"COMPLETION HANDLER");
        ];



- (void)myFirstFunction:(BOOL)selected numberOfBrothers:(int)brothers completion:(void (^)(void))completion

  NSLog(@"Enter in my First function");


谢谢

【问题讨论】:

也许 myFirstFunction 从未真正调用完成处理程序。很难说没有看到它的实现 @Scriptable 对不起,我忘了在帖子中写 First 函数的实现。我编辑了帖子,现在你可以看到它了。 目前还不清楚,但在myFirstFunction 实现中,您应该在某个时候执行completion(); 【参考方案1】:

您的第一个函数不会调用完成。

- (void)myFirstFunction:(BOOL)selected numberOfBrothers:(int)brothers completion:(void (^)(void))completion

     NSLog(@"Enter in my First function");
     completion();

【讨论】:

谢谢!!有用 !!!我不知道该函数需要调用完成处理程序。我觉得很愚蠢:) ths !!

以上是关于为啥我的完成处理程序永远不会被调用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Asp.Net Core Kestrel 服务器向 Ngrok 返回 404 并且控制器永远不会被调用?

为啥 textView:shouldInteractWithTextAttachment:inRange: 永远不会在 UITextView 委托上被调用?

在 delphi XE8 Firemonkey TCheckBox.GetStyleObject 上永远不会被调用,为啥?

Objective-C 完成调用永远不会完成

FCM onMessageReceived() 永远不会被调用

解析:[PFFacebookUtils reauthorizeUser:] 回调永远不会被调用