我的performSelectorOnMainThread的逻辑:withObject:waitUntilDone:

时间:2015-07-26 01:32:13

标签: objective-c multithreading macos

这里的代码是js-ctypes。代码崩溃了,我认为这是因为我对从其他线程在主线程上做东西的阅读的误解。

我的最终目标是始终在辅助线程中设置一个窗口,因此我必须运行performSelectorOnMainThread:withObject:waitUntilDone:

我在做的是:

  1. 使用setWinAlwaysOnTop_class
  2. 创建名为objc_allocateClassPair的班级
  3. 在javascript中编写我的方法并转换为C(目前我将它们编写为仅登录到控制台,但是在我将其更新为NSWindow之后更新
  4. 使用sel_registerName
  5. 为我的方法注册唯一的选择器名称
  6. 使用class_addMethod将我的C方法从步骤2添加到第1步的课程
  7. objc_registerClassPair来自第1步的课程
  8. 使用alloc
  9. 分配我的课程
  10. 使用init
  11. 创建类的实例
  12. 对我在第7步中创建的类实例执行performSelectorOnMainThread:withObject:waitUntilDone:,第一个参数是步骤3中的唯一选择器名称,将第二个arg withObject设置为nil,最后一个arg {{ 1}}到waitUntilDone
  13. 这个逻辑是否正确?我的崩溃不是因为我的逻辑?代码如下:

    YES

0 个答案:

没有答案