ios - 理论小总结

  1. 控件的两种创建方式
  • 通过代码创建
    • 初始化时一定会调用initWithFrame:方法
  • 通过xib\storyboard创建
    •初始化时不会调用initWithFrame:方法,只会调用initWithCoder:方法
    •初始化完毕后会调用awakeFromNib方法

5.设备分辨率(由于自己有时候会忘记,方便自己查看)

设备分辨率

6.内存分区
栈:用来保存局部变量,它的内存是由系统管理的
堆:用来存储对象的,它是由程序员管理的
全局区:用来存放全局变量与静态变量的
常量区:用来存放常量的,只读的
代码区:用来存放代码,只读的

7.const关键字
const修饰普通变量说明这个变量是只读的
修饰数组说明数组中元素是只读的
修饰指针
const在前面,说明指针所指向的存储空间是只读的
后面,说明指针的指向是不可以修改的
const用来形参
1)函数内部不能修稿函数外部的变量值
2)告诉函数的调用者可以放心吧数据传人 我不会修改你的内容

8枚举的使用场景:当某个东西只有那么几个取值时候就使用枚举

9.单例
概念:整个应用程序只有一份内存,并不会分配很多内存
1.不能调用外界alloc,一调用就奔溃,其实就是抛出异常。第一次调用alloc就不会崩溃,其他都崩溃
2.提供一个方法给外界获取单例
3.内部创建一次单例,什么时候创建,程序启动的时候就创建单例
单例的使用:
1声明一个静态变量去保存类的实例,确保它在类中的全局可用性
2声明一个静态变量dispatch_once_t,它确保初始化代码只执行一次,

懒加载
1.作用:
1>用到的时候再加载
2>全局只会被加载一次
3>全局都可以使用

过程:
1.重写成员变量的get方法
2.在get方法中判断:
  1>如果为空,加载数据
  2>如果不为空,就直接返回数据

实例方法和类方法创建的区别:
实例方法:会直接创建线程并且开始运行线程
类方法:先创建线程对象,然后再运行线程操作,在运行线程前可以设置线程的优先级等线程信息

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,239评论 30 472
  • 37.cocoa内存管理规则 1)当你使用new,alloc或copy方法创建一个对象时,该对象的保留计数器值为1...
    如风家的秘密阅读 907评论 0 4
  • 多线程、特别是NSOperation 和 GCD 的内部原理。运行时机制的原理和运用场景。SDWebImage的原...
    LZM轮回阅读 2,046评论 0 12
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,028评论 0 7
  • __block和__weak修饰符的区别其实是挺明显的:1.__block不管是ARC还是MRC模式下都可以使用,...
    LZM轮回阅读 3,412评论 0 6