in Blog Posts, Solution

Unknown class in Interface Builder file

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

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

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

Write a Comment

Comment

  1. 您好,我想问以下,设置 project的Info里面的Link Flag处,增加-all_load,-all_load实际执行的是什么操作呢,设置此标记后,系统会多做哪些事情

    • 应该是这样的,
      一般情况下,linker只会把关联的静态库中你用到的symbol链接到最终的App里,增加了这个Flag之后,库里的所有symbol都会被链接进来。
      Apple的文档里说这个也可以用来处理-ObjC带来的一个Bug。http://developer.apple.com/library/mac/#qa/qa1490/_index.html