按照楼主的思路,用oc重新写了一份,目前发现了一些小问题,在工具里面通过NSUserDefault保存的getter代码在Extension里面取不到啊,主要我是直接用的[NSUserDefaults standardUserDefaults],因为我发现用initWithSuiteName初始化的NSUserDefault为nil,楼主那边可以取到数据吗
Xcode Source Editor Extension用了一段时间Tools for Xcode,感觉生成代码功能挺好用的,很好奇它是如何实现的。搜索一番,最后找到了Source Editor Extension。 此文只是大致...
用了一段时间Tools for Xcode,感觉生成代码功能挺好用的,很好奇它是如何实现的。搜索一番,最后找到了Source Editor Extension。 此文只是大致...
没想到都2021年,我还得写篇文章来讲讲 Crash 监听的一些事情。虽然蛮多文章讲 Crash 监听这块,但总是讲的不够深入或者说不够全面。于是我想分享一下最近我对这方面知...
前言 GetX 与其说是一个状态管理库,倒不如是是一个简化 Flutter 开发的百宝箱。它提供了很多工具来简化我们的开发,本篇我们先对 GetX 有一个大概的认识,然后接下...
一、drawRect 这个方法是用来重绘的,一般为了降低视图层级,会选择在这里进行绘制。 drawRect在以下情况下会被调用: 如果在UIView初始化时没有设置rect大...
前言 当我们提到线程时,就会联想到线程不安全,如何保线程安全以及多线程之间数据访问如何保证不出问题呢,带着这些疑问,我们来介绍一下锁的原理。 1 Synchronized的比...
iOS 底层原理 文章汇总[https://www.jianshu.com/p/412b20d9a0f6] 主要NSObject中的alloc是与自定义类的alloc的源码流...
原文地址: http://blog.scoutapp.com/articles/2015/04/10/understanding-page-faults-and-memory...
通过前面的探讨,我们知道内存分页触发中断异常 Page Fault 后,会阻塞进程,这个问题是会对性能产生影响。实际上在 iOS 系统中,生产环境的应用,在发生缺页中断进行重...
“系统就会发送 methodSignatureForSelector 消息,如果这个方法返回非空,那么就去执行返回的方法,如果为 nil, 则发送 forwardInvocation 消息。这样就完成整个转发链了。”
最后这些说明完全是错误的。
methodSignatureForSelector如果返回空,转发过程结束,直接报错unrecognized selector sent to instance;
如果返回非空,才会调用forwardInvocation方法。
建议博主才核对一下。
是的,这里博主的想法是错误的,正确的理解是当调用[super methodSignatureForSelector:selector]后如果返回的是nil,则通过cacheSignatures来获取class列表,从而再进行遍历class列表,看看哪个class可以执行当前的selector,如果有能执行的,就返回signature,这时消息转发流程会走到forwardInvocation中,在这个里面将invocation.target设置为nil,然后执行inovke操作,以这样的处理来避免crash。
值得一提的是,假如selecor如果是工程内所有类都没有实现过的,即使使用了这个分类,还是会crash的。
iOS崩溃大扫除—NullSafe解决null崩溃什么场景下会遇到null呢? nil/Nil/null/NSNull全解1、解析 JSON 数据时。因为在后端数据库里面,默认数据为 null ,如果修过数据后,又删除,那么...
// super是父类 superview是父控件
博主这句话有问题, 需要更正下,免得误导
super 编译器指示符,仅仅是一个标志,并不是指针,仅仅是标志的当前对象去调用父类的方法,本质还是当前对象调用, super 还是指向当前实例
前言:对《iOS开发系列--打造自己的“美图秀秀”》文章做了整理如果对于CGPaht 或CGContextPath有不理解,那么请查:《IOS图形绘制路径 CGPATH & ...