即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。

当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。


当前回答

每个苹果文档

对于64位和iPhone操作系统应用程序,有一个链接器错误 阻止-ObjC从静态库中加载对象文件 只包含类别,不包含类。解决方法是使用 -all_load或-force_load标志。

简而言之,在你的“构建设置”中添加-all_load到“其他链接器”标志,你应该没问题。

http://developer.apple.com/library/mac/qa/qa1490/_index.html

其他回答

这是一个Xcode4缓存问题,删除所有文件夹 /Users/your_user/Library/Application Support/iPhone Simulator/4.3/Applications/

此外,如果你在iPhone上测试时遇到同样的问题,在运行之前删除旧应用程序……

祝你好运。帕斯卡

我终于解决了这个问题,我忘记在我的.m文件中添加以下代码:

@implementation MyTableViewCell

@end

所以这是因为我为我的表格单元格做了一个占位符@interface,它有一个连接到.xib文件中的元素,但在Interface Builder中有一个错误,如果没有为一个类指定@implementation,它就找不到它。

我已经完成了从其他论坛查看.xib作为源代码和查看MyTableViewCell的所有步骤,尽管我已经将它注释出了我的代码。我试过重置模拟器。我甚至尝试将所有的类分解为与接口同名的单独文件,但在此之前都不起作用。

附注:根据我的经验,.h/。M文件与@interface的名称不同。我有几个文件包含不止一个@interface,他们工作得很好。

P.P.S.我有一个更详细的解释,为什么UITableViewCell和UICollectionViewCell导致这个错误在https://stackoverflow.com/a/22797318/539149以及如何揭示它在编译时使用registerClass: forCellWithReuseIdentifier:。

我有“未知类RateView在接口生成器”,其中RateView是UIView的子类。我已经在Storyboard场景中放置了一个UIView,并将自定义类字段更改为RateView。尽管如此,这个错误还是出现了。

为了调试,我将我的类的名称改为RateView2,并将所有引用更改为匹配,除了UIView的自定义类字段。错误消息仍然像以前一样出现,RateView是缺失的类。这确认了错误消息与Custom类字段的值相关。我将这个值更改为RateView2,错误消息更改为“未知类RateView2在接口生成器”。某种程度上的进步。

最后,我在文件检查器中检查源代码文件本身。在那里,我发现源代码文件(我从教程中复制的)与我的Target没有关联。换句话说,它没有目标会员。我选中了使类的源代码文件成为目标应用程序成员的复选框,错误消息消失了。

我今天使用Swift确实遇到了这个问题。

我修改了一个类Model.h + Model。m to a Model.swift。 该对象在Interface Builder中使用class = Model。

一旦我替换了对象,类就不能再加载了。

我所要做的就是把IB的课程参考改为:

Class = Model
Module = 

to

Class = Model
Module = <TARGETNAME>

您将在构建设置中找到<TARGETNAME>。它也是在你生成的Swift-Header中出现的名称:

转到“ProjectName”,点击它,然后进入“Build phases”选项卡,然后点击“compile sources”,然后点击“+”按钮,一个窗口将出现,选择“MyClass”。然后点击“添加”,

建立项目并运行它,问题一定会得到解决