Unknown Class XX in Interface Builder File

IOS学徒 第二本 Checklist


继续跟着书做的时候,因为学习的是第二版,环境和我机器上的不太一样,书上新建项目后,mainViewController的名字默认为ChecklistsViewController,而我创建后名字为ViewController。为了保持一致,我将ViewController相关的.h和.m文件重命名为ChecklistsViewController,如下

然后修改了ChecklistsViewController.m中的对.h文件的引用名称,将stroyboard中的TableViewController的Custom Class设置为ChecklistsViewController。

感觉这下应该命名保持一致了,然而运行项目,提示Debug信息:“Unknown class ChecklistsViewController in Interface Builder file.


网查后发现,出现该Debug信息一般是因为有Class被IB引用,却没有出现在任何其他的源文件中。应用在上述问题场景,Custom Class设置为ChecklistsViewController,被IB引用,而编译器却没有在其他源文件中找到“ChecklistsViewController"这一Class。

因此,原因查明为虽然我修改了默认ViewController的文件名和.h文件引用,但是忘记修改接口名和实现名称:

对.h .m文件进行如下修改:

‘’‘Objective C

@interface ViewController //改为 @interface ChecklistsViewController


@implementation ViewController //改为 @implementation ChecklistsViewController

’‘’


网上解决方案原文链接:http://blog.sina.com.cn/s/blog_6056c8830100wdea.html

原文如下:

Interface Builder找Class的机制和一般的源文件相同,需要保证包含目标symbol的文件被链接进到最终的app。

出现这个错误,是因为这个class只在IB中用到,编译器在其他源文件中没有发现对这个class的引用,于是没有链接那个class。

解决方法:
1. 在任意一个源文件中使用一下这个class,比如NSLog(@”%@”, classA);
2. 在project的Info里面的Link Flag处,增加-all_load,这样会链接所以存在的symbol


StackOverflow上感觉比较有用的相关信息:http://stackoverflow.com/questions/4591911/unknown-class-firstviewcontroller-in-interface-builder-file


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值