Iphone iOS框架无法创建对象

Iphone iOS框架无法创建对象,iphone,ios,objective-c,Iphone,Ios,Objective C,我创建了一个iOS框架,其中我只有一个UIView类(比方说X),我在其中声明了一些数据源和委托方法 现在,当我在项目中使用框架并尝试创建X的对象时,会出现以下错误: Undefined symbols for architecture i386: "_OBJC_CLASS_$_X", referenced from: objc-class-ref in ViewController.o 现在,如果我在XIB中使用UIView,将其类更改为X,并将其连接到一个插座,然后setDelegate

我创建了一个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
    
  • 如果我不做以上两个步骤。它构建和运行良好

    我希望我的问题是清楚的。感谢您事先提供的帮助。

    至于1:

    原因是该框架不是为iPhone模拟器构建的。我对CocosDenshion也有类似的问题,在我的这篇文章中有记录(但出于某种原因,有人不喜欢它)

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

    至于第二点:


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

    这是一个简单的UIView类,我在其中根据用户提供的数据源创建一个饼图。当我直接使用该类时,它工作得非常好,但当我为该类创建一个框架时,这些问题就会出现。@Developer\u Mario那么,
    setDataSource
    的需要从何而来呢?我在UIView类中声明了一个协议,从用户那里获取piechart的动态输入(如tableview cellForRow)。但是问题现在解决了,因为我创建了一个单独的协议头来声明数据源和委托方法。我希望我说清楚了。。感谢特洛伊人……)