macOS - 自定义框架中的对象抛出无法识别的选择器错误

macOS - Objects in Custom Framework throwing unrecognized selector error

我是第一次创建自定义框架,我打算在插件中使用它。由于它不是应用程序,我不能简单地将我的自定义框架拖到应用程序目标的嵌入式二进制文件部分。从不同的教程中拼凑而成,我执行了以下步骤:

  1. 在插件目标的构建阶段创建了额外的复制文件条目,将我的框架添加到我的产品的 ./Frameworks 路径中。
  2. 在目标的带库的链接二进制文件部分添加了框架
  3. 在构建设置中的目标框架搜索路径中添加了条目

从那里,我的插件的 XCode 项目能够成功引用我在自定义框架中定义的 类,并在 运行 它在各自的主机中实例化对象应用。但是,在实例化框架中定义的我的子类 NSViewControllers 之一时,当我尝试调用其方法之一时,它很快就崩溃了。根据控制台,原因是 unrecognized selector sent to instance <memory_address> abort() called,其中有问题的选择器是我调用的 setter 方法。

我之前在我的插件项目中使用和定义了子类 NSViewControllers,只是不是来自框架。我不确定我的插件项目的框架设置是否有问题,或者是一些 nib 加载异常。我观察到的另一个奇怪之处是,我的 NSViewController 的一些属性在随机情况下丢失,如未在 XCode 的调试器中列出。发生这种情况时,这就是我的插件崩溃并告诉我无法识别的选择器问题的地方。任何人都可以在这里阐明一下吗?

提前谢谢你。

很可能内存地址指向某种其他类型的对象,或已释放的内存块。可能是由于某个地方的 over-release/under-retain。你用过 NSZombies 吗?地址消毒剂?我相信这是在插件中的事实实际上是无关紧要的。