美文网首页
面试整理

面试整理

作者: 小饼干是只松鼠 | 来源:发表于2017-08-04 00:44 被阅读15次

    static和extern简单使用(用法)

    • static作用:

      • 修饰局部变量:
        1. 延长局部变量的生命周期,程序结束才会销毁。
        2. 局部变量只会生成一份内存,只会初始化一次。
        3. 改变局部变量的作用域。
      • 修饰全局变量:
        1. 只能在本文件中访问,修改全局变量的作用域,生命周期不会改
        2. 避免重复定义全局变量
    • extern作用:

      • 只是用来获取全局变量(包括全局静态变量)的值,不能用于定义变量
      • extern工作原理:先在当前文件查找有没有全局变量,没有找到,才会去其他文件查找。
    • static与const联合使用:

      • static与const作用:声明一个只读的静态变量
      • 开发使用场景:在一个文件中经常使用的字符串常量,可以使用static与const组合
      • staic和const联合的作用:声明一个静态的全局只读常量

    addChildViewController用法 (作用)

    • 苹果新的API增加了addChildViewController方法,并且希望我们在使用addSubview时,同时调用[self addChildViewController:child]方法将sub view对应的viewController也加到当前ViewController的管理中。
    • 对于那些当前暂时不需要显示的subview,只通过addChildViewControllersubViewController加进去;需要显示时再调用transitionFromViewController方法。将其添加进入底层的ViewController中。
    • 这样做的好处:
      1. 无疑,对页面中的逻辑更加分明了。相应的View对应相应的ViewController。
      2. 当某个子View没有显示时,将不会被Load,减少了内存的使用。
      3. 当内存紧张时,没有Load的View将被首先释放,优化了程序的内存释放机制。


        addChildViewController.png

    如何定义一个对外只读对内可读写的属性?

    在头文件中将属性定义为readonly, 在.m文件中将属性重新定义为readwrite

    给button addtarget两次会怎么样?

    一个 button 添加两次 addtarget 执行方法,最后方法执行一次;

    nsarray经过mutablecopy生成新的数组,新数组里的元素和之前数组里的元素一样吗?

    一样;

    • [immutableObject copy]是浅拷贝
    • [immutableObject mutableCopy]是深拷贝
    • [mutableObject copy]是深拷贝
    • [mutableObject mutableCopy]是深拷贝

    注意事项:
    集合对象的深拷贝只是对象本身,而集合对象的元素还是地址的拷贝,即单层深拷贝:

    相关文章

      网友评论

          本文标题:面试整理

          本文链接:https://www.haomeiwen.com/subject/bswmlxtx.html