发布网友 发布时间:2022-04-19 14:35
共1个回答
热心网友 时间:2023-10-25 08:10
我们为输出口同时声明了属性和底层实例变量,那时,属性是OC语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如:@interface MyViewController :UIViewController{UIButton *myButton;}@property (nonatomic, retain) UIButton *myButton;@end123456123456IOS5之后现在,苹果将默认编译器从GCC转换为LLVM(low level virtual machine),从此不再需要为属性声明实例变量了。如果LLVM发现一个没有匹配实例变量的属性,它将自动创建一个以下划线开头的实例变量。因此,在这个版本中,我们不再为输出口声明实例变量。例如:MyViewController.h文件@interface MyViewController :UIViewController@property (nonatomic, retain) UIButton *myButton;@end123123在MyViewController.m文件中,编译器也会自动的生成一个实例变量_myButton。那么在.m文件中可以直接的使用_myButton实例变量,也可以通过属性self.myButton.都是一样的。