美文网首页
iOS底层原理

iOS底层原理

作者: 鹏飞说 | 来源:发表于2020-07-23 08:07 被阅读0次
  • 内存泄露
    内存泄露是指我们在开发过程中当栈中的指针消失以后,堆中的内存还存在的情况
  • 野指针
    野指针指的是堆中的内存消失了,但是指向他的指针还存在在栈中的情况
  • 指针释放
    就是把指针指向一个空地址
  • weak工作原理
    Runtime会对weak属性进行内存布局,构建hash表:以weak属性对象内存地址为key,weak属性值(weak自身地址)为value。当对象引用计数为0 dealloc时,会将weak属性值自动置nil。
/**在开发中
如果函数中有creat new copy 默认都会开辟堆空间
也就是调用malloc 方法
**/
CFRunLoopObserverRef  observer;

// 不能使用
free(observer) 
/*不能使用这个方法取消,
因为可能再次开辟堆控件,
因为他不知道是否会有结构体,
就可能会引起内存泄漏*/
//有可能开辟一些非ARC的内存空间
CFRelease(observer)  // 和dealloc类似
  • 一个函数调用自身函数就会引起堆栈内存溢出

  • 函数调用栈
    调用函数的时候我们首先会减sp内存器,栈内存开辟一段空间,调用完成之后就会加内存器,之后把栈空间取消了

  • runtime运行时

/**
OC方法由那几个部门:
SEL:方法编号
IMP:方法实现(指针)
**/

相关文章

网友评论

      本文标题:iOS底层原理

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