讨论了here;相似但不完全相同。
MyView
是UIImageView
的Swift子类。它编译并且其界面显示在DerivedData/.../*-Swift.h
文件中。但在Obj-C中向下倾斜失败了。代码:
MyView* myView = (MyView*)viewThatCameFromIB;
// The Custom Class declared in IB inspector as MyView.
在Xcode变量查看器中生成此行:
myView UIImageView * 0x7fc8e9417e00
这行代码执行时没有失败。但果然,尝试使用MyView
变量上的myView
功能会与未知选择器崩溃。由于演员在Obj-C中成功,在移植MyClass
之前,也应在端口之后,n' est-ce pas?
我试过了:
现在这个工作了:
MyView
方法init()
也就是说,我有一个MyView
个实例:
myView _TtC12YadaYada11MyView * 0x7f8bc05487d0
(因此,我可以想到一个解决方法:编写一个Swift MyView
构造函数,它使用UIImageView
并使用它构建自己。但我不应该这样做.Inn&#39那个幕后的人会在幕后做什么?)
答案 0 :(得分:0)
问题似乎是通过在Identity Inspector的Custom Class部分中清除(设置)Inherit Module From Target
视图的MyView
布尔值来引起(修复)的。至少在从零开始的测试案例中。在我特定的移植挑战中,有3,000多个文件(以及50多个MyView
s),可能存在混淆因素。但就目前而言,这就是答案。