小知识点拾遗

1.要创建本地仓库,将自己写的demo 都推送上去。https://github.com/GKman6657 移步git地址

2.为了避免界面在处理耗时的操作时卡死,比如读取网络数据,IO,数据库读写等,我们会在另外一个线程中处理这些操作,然后通知主线程更新界面。用GCD实现这个流程的操作比前面介绍的NSThread  NSOperation的方法都要简单。

3.init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、viewDidDisappear的执行顺序:

很明显,先执行init、然后执行viewDidLoad,然后是viewWillAppear最后是viewDidAppear,这样视图就创建好了,当视图消失或者被覆盖的时候:viewWillDisappear    -->viewDidDisappear

这样一来视图就消失了,当模拟内存警告的时候:Received simulated memory warning. -->viewWillUnload-->viewDidUnload

当视图控制对象收到内存警告的时候,程序会执行viewWillUnload最后是执行viewDidUnload。

4.

*代码区:存放函数二进制代码

*数据区:系统运行时申请内存并初始化,系统退出时由系统释放,存放全局变量、静态变量、常量

*堆区:通过malloc等函数或new等操作符动态申请得到,需程序员手动申请和释放

*栈区:函数模块内申请,函数结束时由系统自动释放,存放局部变量、函数参数

ps: 栈和堆的不同

栈的空间由操作系统自动分配/释放,堆上的空间手动分配/释放。栈空间是有限的,而堆是很大的自由存储区。C中的malloc函数分配的内存空间是在堆上的,C++中对应的是new操作符。 程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,239评论 30 472
  • 37.cocoa内存管理规则 1)当你使用new,alloc或copy方法创建一个对象时,该对象的保留计数器值为1...
    如风家的秘密阅读 909评论 0 4
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 2,028评论 0 7
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,758评论 0 11
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 1,770评论 0 4