ting_s 2015-01-20 11:48 采纳率: 0%
浏览 690

iOS:请问一个线程涉及2个类,如何向该线程performSelecto?

我有一个线程,这线程首先是在a类中创建,并调用a类的a1方法,而a1方法又调用了b类的b1方法。

我在c类中,想向该线程发通知,希望其调用b类的b2方法,

我的代码:

[self performSelector:@selector(b2) onThread:m_thread withObject:nil waitUnitilDone:NO]; 

提示:unrecognized selector to instance 0x14450aa20

请问这里该如何修改?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-03 07:02
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    你已经正确地使用了performSelector:onThread:方法来执行你的操作。但是,如果你想要在主线程上等待这个操作完成后再返回,则可以这样写:

    dispatch_async(dispatch_get_main_queue(), ^{
        self.performSelector:@selector(b2) onThread:m_thread withObject:nil waitUnitilDone:NO;
    });
    

    在这个例子中,dispatch_get_main_queue()函数会将当前调度到主线程。然后,在performSelector:waitUntilDone:函数中,我们将回调函数设置为@selector(b2)并传递给m_thread对象。最后,我们设置了waitUnitilDone参数为NO,这意味着当b2方法完成后,才会继续执行后续的操作。

    评论

报告相同问题?