- 博客(6)
- 收藏
- 关注
原创 [Swift语言描述]函数式编程进阶 - 实现 Parser Combinator
链接:https://juejin.cn/post/6910585840255107079 前言 在函数式编程的世界里,抽象与组合往往密不可分:多个细粒度抽象通过特定的组合则形成更高粒度的抽象,而后高粒度的抽象又可以被再次组合、不断递进,一步一步地抬升代码抽象的高度。我在工程开发中所感受到的函数式编程的魅力,也正是体现在它强大的抽象能力上。 Parser(解析器)能分析输入,产生结果。如正则表达式引擎可以解析匹配输入的字符串、JSONSerialization可帮助 iOS/Mac 开发者将 JSON 解析
2021-01-06 12:10:24
340
原创 OpenGL渲染架构
OpenGL渲染架构 主要包含两个模块: Client客户端:常见的App代码以及OpenGL相关的调用API代码,该部分通过CPU执行; Server服务端:OpenGL底层的着色器渲染等流程,该部分通过GPU执行。 架构分析 客户端中通过iOS代码调用OpenGL API中的方法,将图形渲染的相关数据通过通道传递到Server中顶点着色器和片元着色器,并交由GPU处理; Server通过与客户端的通道接收传递的数据,并交由相应着色器进行渲染处理,并将最终的结果渲染到屏幕上。 数据传递方式 A
2020-12-03 19:26:55
335
原创 IOS-自动释放池
AutoreleasePool 自动释放池(NSAutoreleasePool):An object that supports Cocoa’s reference-counted memory management system. 使用示例: 在MRC环境下 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; // Code benefitting from a local autorelease pool. [pool re
2020-12-03 19:26:01
459
转载 手撕 iOS 底层03 -- NSObject的alloc分析
手撕 iOS 底层03 – NSObject的alloc分析 通过实践得知, NSObject *objc = [NSObject alloc];这行代码是不会直接走alloc方法里的, 这也就和我们之前探索的自定义类alloc流程有区别?所以这一章分析下NSObject的alloc和自定义类的alloc有什么区别? 0x00 – objc_alloc 在断点处,点击Debug --> Debug Workflow --> Always Show Disassembly; 通过汇编调试得知:
2020-11-27 16:16:47
249
转载 手撕iOS底层02 -- 分析alloc&init&new
OC对象与指针 GPerson *p1 = [GPerson alloc]; GPerson *p2 = [p1 init]; GPerson *p3 = [p1 init]; LGPrint(@"%@ - %p - %p", p1, p1, &p1); //<GPerson: 0x6000022f4160> - 0x6000022f4160 - 0x7ffee7a11078 LGPrint(@"%@ - %p - %p", p2, p2, &a
2020-11-27 16:12:18
306
转载 手撕iOS底层 01 -- 源码探索的方式
在项目中经常使用的alloc方法, 如果想要探索这个方法的底层实现, 该如何下手呢? 所以本篇文章主要记录探索底层源码的三种方式, 起到抛砖引玉的作用。???? 源码探索的三种方式: 符号断点 control + step into 汇编 0x00 符号断点 让程序跑起来,来到断点处。 新建一个Symbolic Breakpoint...。 创建一个alloc的符号断点。 接着点击Continue program execution 然后就跳到这里了,开头写着libobjc.A.dy
2020-11-27 16:04:03
133
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人