【问题标题】:Interface Builder loading wrong classInterface Builder 加载错误的类
【发布时间】:2012-11-26 14:12:24
【问题描述】:

我创建了一个名为 JWTextView 的自定义 NSTextView 子类。它是一个单独的 Xcode 项目的一部分。该项目有一个创建包含此类的静态库的目标。我现在将此子项目添加到MainProject/Libraries/JWKit(在 Finder 中)下的主项目中,并将其添加到 Xcode 中。我使我的主项目的目标取决于子项目的库目标,并且我将库链接到我的主目标中。我还在库和标题搜索路径中添加了MainProject/Libraries/**

现在我正在尝试在我的主项目中使用此视图。我将NSTextView 添加到我的一个xib 中,并将其类更改为JWTextView。我的代码中还有一个IBOutlet JWTextView,并在用户交互时对其调用一些方法。 JWTextView.h 已导入。一切编译文件。

但是,一旦我在我的 JWTextView 子类中实现的这个文本视图上调用一个方法,应用程序就会崩溃并出现 无法识别的选择器错误:

-[NSTextView myCustomMetod:]: unrecognized selector sent to instance 0x101901a80

我查了一下,它实际上是一个 NSTextView 实例,即使 ivar 是一个 JWTextView ,我也在 IB 中设置了类。

如果我只是将类添加到我的主项目中,它可以正常工作,但不能作为子项目和静态库。

【问题讨论】:

标签: objective-c xcode macos interface-builder static-libraries


【解决方案1】:

编译器对其进行了优化,因为我没有在任何地方按名称引用该类(除了 ivar,这似乎没有帮助)。

[JWTextView class]; 添加到applicationDidFinishLaunching: 解决了这个问题。

【讨论】:

  • 在将库链接到应用程序目标时,使用-ObjC 链接器开关代替您的解决方法怎么样?
猜你喜欢
  • 2013-01-12
  • 1970-01-01
  • 2015-05-21
  • 2015-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多