2

我创建了一个 iOS 框架,其中只有一个 UIView 类(比如说 X),其中我声明了一些数据源和委托方法。

  1. 现在,当我在项目中使用框架并尝试创建X的对象时,它给了我以下错误:

    Undefined symbols for architecture i386:
    "_OBJC_CLASS_$_X", referenced from:
    objc-class-ref in ViewController.o
    
  2. 现在,如果我在 XIB 中使用 UIView 并将其类更改为X并将其连接到插座,然后 setDelegate 和 setDatasource 它会引发异常:

    Terminating app due to uncaught exception 'NSInvalidArgumentException', 
    reason: '-[UIView setDataSource:]: unrecognized selector sent to instance 0x756f670
    

如果我不执行上述两个步骤。它构建并运行良好。

我希望我的问题很清楚。感谢您提前提供任何帮助。

4

1 回答 1

1

至于1:

原因是该框架不是为 iPhone Simulator 构建的。我在 CocosDenshion 遇到了类似的问题,记录在我的这个SO Question中(尽管出于某种原因,有人不喜欢它)。

最简单的解决方案是将您的项目和框架放入 Xcode 工作区,Xcode 将在需要时为 iPhone 模拟器构建框架。如果您不想这样做,请按照上面链接的 SO 问题中的说明进行操作。

至于2:

您需要提供指定的方法;看起来您更改了UITableView基于 - 的类并将其更改为UIView基于 - 的类,这将不起作用。派生新的类UITableView,事情应该重新开始。

于 2013-09-18T06:00:34.960 回答