美文网首页
小知识点拾遗

小知识点拾遗

作者: 钱刀为 | 来源:发表于2017-01-17 14:51 被阅读5次

    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操作符。 程序在编译期对变量和函数分配内存都在栈上进行,且程序运行过程中函数调用时参数的传递也在栈上

    相关文章

      网友评论

          本文标题:小知识点拾遗

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