IBOutlet对于编译器而言只是一个标记,也就是说,编译器会忽略这个关键字。
Interface Builder则是根据IBOutlet来寻找可以在Builder里操作的成员变量。
需要注意的是,任何一个被声明为IBOutlet并且在Interface Builder里被连接到一个UI组件的成员变量,会被额外retain一次。
IBOutlet UILabel *label;
这个label在Interface Builder里被连接到一个UILabel。此时,这个label的retainCount为2。
所以,只要使用了IBOutlet变量,一定需要在dealloc或者viewDidUnload里release这个变量。
用IBoutlet 和IBaction修饰的字段或方法都和InterfaceBuilder有关。
IBoutlet修饰的字段可以和InterfaceBuilder里相应控件相关联;
IBaction修饰的方法可以和InterfaceBuilder里控件的相应动作相关联。