面试整理

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]是深拷贝

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端面试题的简单整理,都只是大概回答,具体某些问题的具体理解后续会补上。 前端页面有哪三层构成,分别是什么?作用是...
    李欢li阅读 494评论 0 2
  • 整理收集下面试基础,日常学习回忆下,也有助于基础巩固。(部分资料回答来源于网络搜索),如果有错误部分,欢迎指出改正...
    蜡笔小强阅读 496评论 3 1
  • 1、Objective-C的类可以多重继承么?可以采用多个协议么?答:不可以多重继承,可以采用多个协议。2、#im...
    亦晴工作室阅读 646评论 0 0
  • 循环引用:http://ios.jobbole.com/82077/类别的作用功能:1.扩充现有类的功能2.对现有...
    得一切从简阅读 521评论 0 1
  • 2017.11.04周末,带着不愉快的心情,愉快的出门。重拾一个人的日子。「下沙博物馆」有人说,去一个地方,首先要...
    一只默阅读 182评论 0 0