IBAction和IBOutlet:IB指的是Interface Builder,两个均被用作关键字
IBOutletCollection是始终是NSArray属性,且秩序不一定得到保证
@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *buttons;
- 返回IBAction类型。
- Method name of an active verb, describing the specific action performed.
- 类型id的必需sender参数。所有目标/操作方法都将将操作的sender(通常是响应者)传递给接受参数的方法。如果方法签名中省略,事情仍然有效。
@property (weak, nonatomic) IBOutlet UILabel *label;
IBOutlet连接通常在视图或控件与其管理视图控制器之间建立,这通常是在响应者可能针对视图控制器执行的任何IBAction之外完成的。
始终声明IBOutlet属性为weak,除非特别指出需要strong
总结:声明IBAction和IBOutlet是为了应用启动后,能够被程序访问、调用以完成动态交互的功能。
Const ,extern static
extern NSString *const SUCCESS_COLOR;
一:const
1.const只修饰右边的变量, 变量为只读变量,变量属性是外连接的
2.const和宏的区别
(1)宏是预编译执行,const是编译执行.
(2)宏不会做编译检查,它只是做替换,因此不会编译报错;const会编译检查,会编译报错.
(3)宏能定义方法或函数,const不能.
(4)大量使用宏会造成编译时间长久.
(5)大量使用宏并不会消耗很多内存,宏定义的是常量,常量是存放在常量去,只生成一份内存,并不像有些人所说的会消耗很多内存!
二.static和extern
1.static作用:
(1)修饰局部变量
1)延长局部变量的声明周期,程序结束才销毁
2)局部变量只初始化一次,节省内存
3)改变作用域
(2)修饰全局变量
1)只能在本文件中访问,修改全局变量作用域,生命周期不改变
2)避免重复定义全局变量
2.extern作用:
(1)只是用来获取全局变量的值,不能用来定义变量
(2)工作原理是先在本文件中查找有没有全局变量,没有找到的话再去其他文件中查找.
三.static和const一起使用
1.防止重复声明全局变量
2.不希望同事无意中修改变量,只允许读取
3.声明一个静态的全局只读常量
四.extern与const一起使用
1.在多个文件中经常使用同一个字符串常量,用extern和const组合使用
2.一般建一个GlobeConst
_title = title;为什么变量名为title,但是值方法里却是_title?
:我们值声明一个变量时,编译时系统会自动给该变量重新定义起名,并添加该变量的setter 和getter方法,以_title出现在方法中
self.title = title:编写时用self代替下划线,这样访问其属性值,也就是getter方法,_title 是可以设置和获取属性值。
成员变量和属性
①:成员变量默认修饰是用protected修饰。不会自动生成set和get方法,需要自己手动代码实现。不能用点语法调用,因为没有set和get方法,只能使用->调用。
②:属性用”@property“声明,声明后默认会生成一个_类型的成员变量,同时也会生成setter/getter方法。在调用时使用self.的形式,如果self.表达式出现在等号=左边,调用该属性名称的setter方法。如:self.name = @“ ”;,给Name赋予值;
如果self.表达式出现在=右边,调用该属性名称的getter方法。如其他 = self.name;此时其他的值为此时的name值
当代码中有自定义的存或取方法时,自定义会屏蔽自动生成的getter/setter方法
如下述代码片段,会出现死循环
- (void)setDataView:(DataView *)dataView {
self.dataView = dataView;
}
原因是:dataView是属性值,self.dataView时默认调用getter方法,但是代码片段有重写的setter方法,所有系统会去setter方法小红读取当前值,而setter方法又出现self.dataView,导致系统一直在这个函数中循环
原文地址:https://blog.csdn.net/YUANdeboke/article/details/122489308
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_22494.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!