美文网首页
iOS 开发整理

iOS 开发整理

作者: 羽裳有涯 | 来源:发表于2019-11-22 15:46 被阅读0次

1、理解内存管理

引用计数:

  • 是一个简单而有效的管理对象生命周期的方式;
  • 当对象的引用计数变为0时,说明这个对象不再被任何指针指向了,这个时候我们就可以将对象销毁,回收内存。

由于引用计数简单有效OC 、Swift、微软的COM(component Object Model)C++11等引用计数的内存管理方式。
ARC(Automatic Reference Count)自动引用计数

循环引用(reference cycles)问题

Core Foundation 对象的内存管理
__bridge: 只做类型转换,不修改相关对象的引用计数
__bridge_retained:类型转换后,将相关对象的引用计数加1
__bridge_transfer:类型转换后,将该对象的引用计数交给ARC管理。

2、GCD(Grand Central Dispatch)

其他多线程方案,如NSThred、NSOperationQueue、NSInvocationOperation

3、UIWindow

  • UIWindow 继承自UIView,
  • WindowLevel
UIKIT_EXTERN const UIWindowLevel UIWindowLevelNormal;  0
UIKIT_EXTERN const UIWindowLevel UIWindowLevelAlert; 2000
UIKIT_EXTERN const UIWindowLevel UIWindowLevelStatusBar  1000
  • 不要滥用UIWindow :常见滥用方式是把需要弹出的界面都设置成单列,需要时调用显示。这种做法会使得新创建的UIWindow一直得不到释放。并且当出现多个UIWindow需要相互有层级覆盖关系时,实现起来比较复杂。

CoreText

CoreText是用于处理文字和字体的底层技术
Quartz是一个2D图形渲染引擎,能够处理iOS和OSX中的图形显示问题。

isa指针

  • Objective-C语言内部,每个对象都有一个isa指针,指向该对象的类。
  • 每一个类描述 了一些列它的实例特点,包括成员变量的列表、成员函数的列表等。
  • 每一个对象都可以接收消息,而对象能够接收的消息列表保存在它所对应的类中


类的成员变量


下图,通过修改该指针指向的指针的值,就可以动态的为某一个类增加成员方法。这也是Category实现的原理

通过objc_setAssociatedObject 和objc_getAssociatedObject 方法可以变相的给对象增加成员变量,但由于实现机制不一样,所以并不是真正改变对象的内存结构。

因为isa本身也只是一个指针,所以除了对象的方法可以动态修改外,也可以在运行时动态的修改isa指针的值,达到替换对象整个行为的目的。

对象模型的应用

动态创建对象 :我们可以使用Objective-C语言提供的与runtime相关的函数,动态的创建一个新的类,并且通过相关的方法来获取isa指针的值,从而了解对象的内部结构





系统相关API及应用

isa swizzling 的应用


Tagged Pointer

深入理解Tagged Pointer

Block对象模型

相关文章

  • iOS并发开发简要整理(上)

    iOS并发开发简要整理(上) iOS并发开发简要整理(上)

  • iOS开发使用半透明模糊效果方法整理

    iOS开发使用半透明模糊效果方法整理 iOS开发使用半透明模糊效果方法整理

  • 20170317 Guidelines & AppSto

    Guidelines iOS开发规范整理 Objective-C编码规范:26个方面解决iOS开发问题 iOS开发...

  • IOS学习资料整理

    iOS 学习资料整理 唐巧整理:中文 iOS/Mac 开发博客列表 禅与 Objective-C 编程艺术 iOS...

  • iOS开发常用之博客

    开发博客列表 唐巧整理 - 猿题库唐巧整理。 11个超棒的iOS开发学习国外网站 - 11个超棒的iOS开发学...

  • ios开发碎记录

    ios开发碎知识点 前言. 整理好久的了,最近很少开发ios了,再不发估计ios就废了 ?ios日常开发中,有必要...

  • iOS开发进阶

    接触iOS开发已经2年有余,年前开发需求并不高,空闲下来了,准备把知识整理整理。 首先把iOS开发进阶详细的记录下...

  • iOS学习指南 - 旧(收集)

    *** 版权声明: 以下文章都是从互联网上收集并整理而成的。 *** iOS iOS开发路线简述 iOS开发60分...

  • iOS 开发整理

    1、理解内存管理 引用计数:是一个简单而有效的管理对象生命周期的方式;当对象的引用计数变为0时,说明这个对象不再被...

  • iOS开发进阶

    一、如何提高iOS开发技能 1、阅读博客,整理了40多位iOS开发博主的博客,存在github上面:https:/...

网友评论

      本文标题:iOS 开发整理

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