[iOS]关于IBOutlet

为了使用Interface Builder,我们需要在如XXViewController.h中增加IBOutlet标记。 IBOutlet对于编译器而言只是一个标记,也就是说,编译器会忽略这个关键字。 Interface Builder则是根据IBOutlet来寻找可以在Builder里操作的成员变量。 需要注意的是,任何一个被声明为IBOutlet并且在Interface Builder里被连接到一个UI组件的成员变量,会被额外retain一次。 常见的情形如 IBOutlet UILabel *label; 这个label在Interface Builder里被连接到一个UILabel。此时,这个label的retainCount为2。 所以,只要使用了IBOutlet变量,一定需要在dealloc或者viewDidUnload里release这个变量。

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