我创建了一个 iOS 框架,其中我只有一个 UIView 类(比如说 X),我在其中声明了一些数据源和委托(delegate)方法。
现在,当我在项目中使用框架并尝试创建 X 的对象时,出现以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_X", referenced from:
objc-class-ref in ViewController.o
现在,如果我在 XIB 中使用 UIView 并将其类更改为 X 并将其连接到 socket ,然后 setDelegate 和 setDatasource 会引发异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[UIView setDataSource:]: unrecognized selector sent to instance 0x756f670
如果我不执行以上两个步骤。它构建并运行良好。
我希望我的问题很清楚。感谢您提前提供任何帮助。
至于1:
原因是该框架不是为 iPhone Simulator 构建的。我在 CocosDenshion 遇到了类似的问题,记录在此 SO Question 中我的(尽管有人不喜欢它,出于某种原因)。
最简单的解决方案是将您的项目和框架放入 Xcode 工作区,Xcode 将在需要时为 iPhone 模拟器构建框架。如果您不想这样做,请按照上面链接的 SO 问题中的说明进行操作。
至于2:
您需要提供指定的方法;看起来您更改了基于 UITableView
的类并将其更改为基于 UIView
的类,这不起作用。从 UITableView
派生新类,事情应该会重新开始。
关于iphone - iOS框架无法创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18864793/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |