我创建了一个iOS框架,其中我只有一个UIView类(让我说X ),其中我已经声明了一些数据源和委托方法。
现在,当我在项目中使用框架并尝试创建 X 的对象时,它会出现以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_X", referenced from:
objc-class-ref in ViewController.o
现在,如果我在XIB中使用UIView并将其类更改为 X 并将其连接到插座,然后将setDelegate和setDatasource引发异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[UIView setDataSource:]: unrecognized selector sent to instance 0x756f670
如果我不做上述两个步骤。它构建并运行良好。
我希望我对此表示清楚。感谢您提前提供任何帮助。
答案 0 :(得分:1)
至于1:
原因是框架不是为iPhone模拟器构建的。我在CocosDenshion中遇到了类似的问题,记录在我的SO Question中(由于某种原因,有人不喜欢它)。
最简单的解决方案是将您的项目和框架放入Xcode工作区,Xcode将在需要时为iPhone模拟器构建框架。如果您不想这样做,请按照上面链接的SO问题中的说明进行操作。
至于2:
您需要提供指定的方法;看起来您更改了基于UITableView
的类并将其更改为基于UIView
的类,这将无效。从UITableView
派生新类,事情应该重新开始。