static和extern简单使用(用法)
-
static作用:
- 修饰局部变量:
- 延长局部变量的生命周期,程序结束才会销毁。
- 局部变量只会生成一份内存,只会初始化一次。
- 改变局部变量的作用域。
- 修饰全局变量:
- 只能在本文件中访问,修改全局变量的作用域,生命周期不会改
- 避免重复定义全局变量
- 修饰局部变量:
-
extern作用:
- 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
- extern工作原理:先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
-
static与const联合使用:
- static与const作用:声明一个只读的静态变量
- 开发使用场景:在一个文件中经常使用的字符串常量,可以使用static与const组合
- staic和const联合的作用:声明一个静态的全局只读常量
addChildViewController用法 (作用)
- 苹果新的API增加了
addChildViewController
方法,并且希望我们在使用addSubview
时,同时调用[self addChildViewController:child]
方法将sub view
对应的viewController
也加到当前ViewController
的管理中。 - 对于那些当前暂时不需要显示的
subview
,只通过addChildViewController
把subViewController
加进去;需要显示时再调用transitionFromViewController
方法。将其添加进入底层的ViewController
中。 - 这样做的好处:
- 无疑,对页面中的逻辑更加分明了。相应的View对应相应的ViewController。
- 当某个子View没有显示时,将不会被Load,减少了内存的使用。
-
当内存紧张时,没有Load的View将被首先释放,优化了程序的内存释放机制。
addChildViewController.png
如何定义一个对外只读对内可读写的属性?
在头文件中将属性定义为readonly, 在.m文件中将属性重新定义为readwrite
给button addtarget两次会怎么样?
一个 button 添加两次 addtarget 执行方法,最后方法执行一次;
nsarray经过mutablecopy生成新的数组,新数组里的元素和之前数组里的元素一样吗?
一样;
- [immutableObject copy]是浅拷贝
- [immutableObject mutableCopy]是深拷贝
- [mutableObject copy]是深拷贝
- [mutableObject mutableCopy]是深拷贝
注意事项:
集合对象的深拷贝只是对象本身,而集合对象的元素还是地址的拷贝,即单层深拷贝:
网友评论