![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码分析
文章平均质量分 85
ReynBryant
萌新
微信搜索【zrz856】
展开
-
NSObject 底层原理分析(二) -- SideTable
NSObject 底层原理分析 SideTable SlideTable 结构Side Table初始化与析构函数Side Table 提供方法SlideTable 调用SlideTable 引用计数+1SideTable 引用技术-1上一篇NSObject 底层原理分析(一)中我们讨论了关于[[NSObject alloc] init],[NSObject new]以及[NSObject dealloc]的执行流程。其中,我们有提到释放NSObject中会判断当前的isa是否经过SideTable优化。原创 2022-02-22 16:58:59 · 321 阅读 · 0 评论 -
NSObject 底层原理分析(一)
NSObject 底层原理分析初始化调用alloc方式调用init方式调用new方式销毁调用deallocNSObject在Objective-C中大多数类层次结构的根类,通常我们在使用NSObject对象时,会使用[[NSObject alloc] init] 或者 [NSObject new]创建对象实例,通过这篇文章,我们一起研究关于NSObject的对象创建过程。初始化调用alloc方式当我们调用[NSObject alloc]方法时候,会调用_objc_rootAlloc(self)这个方原创 2022-02-21 18:35:19 · 332 阅读 · 0 评论 -
LLVM Clang类名格式检验插件
LLVM Clang编译器编写的Xcode进行代码类名格式检验插件一.源码#include <iostream>#include "clang/AST/AST.h"#include "clang/AST/ASTConsumer.h"#include "clang/ASTMatchers/ASTMatchers.h"#include "clang/ASTMatchers/ASTMatchFinder.h"#include "clang/Frontend/CompilerInstanc原创 2021-09-17 14:51:06 · 262 阅读 · 0 评论 -
GnuStep NSArray源码分析(一) -- 初始化
前言前面几期博客中,我们看了苹果开发常用主流框架的源码,在其中我们也学会了一些设计理念和设计思路。从这篇博客开始我们开起了对于Objective-C源码的部分解析。虽然Objective-C官方是非开源的,但小编找到了GnuStep程序,来模仿苹果官方实现了OC中Foundation的部分源代码,是值的我们来分析和理解的。NSArray在OC开发中,我们使用相对较为多的,就是数组操作,对于数组OC定义了NSArray和NSMutableArray,对于NSArray来说,是一个不可变的数组。这篇文章就原创 2020-06-03 12:29:54 · 574 阅读 · 0 评论 -
GPUImage图像处理源码精讲(二) -- 渲染效果
渲染效果这篇是GPUImage图像处理代码最后一篇,下面希望小编分析IOS哪些框架,大家可以在评论区进行留言,小编会第一时间展开源码分析阅读。前一篇,了解了关于UIImage转换成为GPUImage的大致过程,虽然代码很长,但是,我们领略了基本思想。今天我们来关注一个这个GPUImage核心渲染是如何操作的,这里面应用了一些图像,像素点等知识,需要的小伙伴可以自行了解。我们主要看设计思路。渲染代码代码取自第一篇中的示例代码。我们进入一个Filter来看一下具体操作,就从褐色过滤器来关注。 GPUI原创 2020-05-26 21:46:40 · 348 阅读 · 0 评论 -
AFNetworking网路请求源码精讲(五) — AFAutoPurgingImageCache / UIImage+AFNetworking(图片缓存)
UIImage+AFNetworking图片缓存下载前面四篇主要讲解了一下关于AFNetworking的常用请求的使用,这篇文章,缓和一下气氛,我们来关注一下AFNetworking提供的图片缓存机制。使用方法在项目中导入UIKit+AFNetworking/UIImageView+AFNetworking.h来调用。通过头文件名称,我们不难看出这是一个分类,是AFNetworking对UIImage方法拓展的操作。UIImageView *imageV = [[UIImage alloc] in原创 2020-05-20 18:17:48 · 222 阅读 · 0 评论 -
AFNetworking网路请求源码精讲(四) — Download下载任务
NSURLSessionDownloadTask前面三篇,分析了关于AFNetworking的GET和POST请求方法,以及AFNetworking将系统的协议封装成为了一个AFNetworking自己的DataTaskDelegate的方法。通过本篇AFNetworking,我们将分析AFNetworking下载任务操作。NSURLSessionDownloadTask- (NSURLSessionDownloadTask *)downloadTaskWithRequest:(NSURLReques原创 2020-05-18 22:54:01 · 584 阅读 · 0 评论 -
AFNetworking网络请求源码精讲(三) -- AFURLSessionManagerTaskDelegate
AFURLSessionManagerTaskDelegate前两篇,我们分析了GET和POST操作,同时,我们分析了AFNetworking是如何将GET和POST进行封装的,今天我们来看,网络请求最重要的必经之路Delegate,我们来看一下AFNetworking是如何封装AFURLSessionManagerTaskDelegate。定义Delegate在这里AFURLSessionManagerTaskDelegate自定义Delegate利用系统提供的NSURLSessionTaskDel原创 2020-05-14 21:45:16 · 315 阅读 · 0 评论 -
AFNetworking网络请求源码精讲(二) -- POST操作
AFNetworking POST操作网络请求部分,我们上一片分析了GET请求源码部分,通过这篇我们来了解关于POST请求的源码部分,其实POST和GET实现过程是一样的就是中间处理部分会出现略微差异。POST操作- (nullable NSURLSessionDataTask *)POST:(NSString *)URLString parameters:(nullable id)parameters headers:(nullable NSDictionary <NSString *, NS原创 2020-05-09 14:16:42 · 919 阅读 · 0 评论 -
AFNetworking网络请求源码精讲(一) -- GET操作
AFNetworkingAFNetworking是一款优秀的网络请求框架,从这篇文章开始,我们一起来看关于AFNetworking常用的源码解析。通常,在网络请求中,我们会进行GET和POST操作,面对这种方式,系统提供了NSURL和NSURLRequest来实现GET和POST请求。系统方式: NSURL *url = [[NSURL alloc] initWithString:@"htt...原创 2020-05-07 09:14:11 · 517 阅读 · 0 评论 -
Masonry布局源码精讲(三) -- 链式布局
链式布局之前我们分析了如何实现链式编程,并且大致了解了链式编程思想在开发中的好处。通过这篇文章,我们来看一下Masonry作为经典的链式编程思想是如何设计的,我们拭目以待。Masonry布局设置- (MASConstraint *)addConstraintWithLayoutAttribute:(NSLayoutAttribute)layoutAttribute { return ...原创 2020-05-06 09:01:07 · 228 阅读 · 0 评论 -
Masonry布局源码精讲(二) -- MASConstraintMaker
MASConstraintMaker上一篇,我们了解了链式编程的基本思想,从这篇开始,我们通过Masonry来更深刻的理解链式编程思想。先来看这个代码片,我们从mas_makeConstraints入手来深入源码的学习。[yellowV mas_makeConstraints:^(MASConstraintMaker *make) { /** * 链式方法...原创 2020-04-28 08:56:46 · 875 阅读 · 0 评论 -
Masonry布局源码精讲(一) -- 链式编程思想
链式编程思想Masonry常用使用方式Block基本思想链式编程思想带参数的Block链式操作Masonry常用使用方式 UIView *yellowV = [[UIView alloc] init]; [yellowV setBackgroundColor:[UIColor yellowColor]]; [self.view addSubview:yellowV]; ...原创 2020-04-26 09:19:48 · 241 阅读 · 0 评论 -
SVProgressHUD源码精讲(二) -- Dismiss
SVProgressHUD Dismiss前面一篇,我们分析了SVProgressHUD显示的源码部分,结尾处还留有dismiss方法,这篇文章,我们一起来看一下dismiss方法的具体分析。源码这里可以清晰的看到,dimiss做了一层封装,实际上需要调用dimissWithDelay: completion:方法实现取消操作。- (void)dismiss { [self dis...原创 2020-04-23 16:44:09 · 388 阅读 · 0 评论 -
SVProgressHUD源码精讲(一) -- Showing the HUD
Showing the HUD(显示弹框)从这篇文章开始我们开始分析另一个常用的框架SVProgressHUD,这个框架类似于MBProgressHUD效果,可以出现一个模态框。使用场景:登陆界面,加载界面等多种与用户交互的界面效果图如下基本show显示+ (void)show;+ (void)showWithStatus:(NSString*)string;先来看最简单的s...原创 2020-04-22 09:27:44 · 466 阅读 · 0 评论 -
ReactiveCocoa源码精讲(五) -- 终结篇
ReactiveCocoa终结篇前面四篇文章我们分析了RAC的常用的基本用法和源码实现。今天,是关于RAC源码分析的最后一篇文章。今天介绍的两个类是RACMulticastConnection和RACCommand,这两个使用在现实开发中有着至关重要的作用,尤其是网络请求案例。RACMulticastConnection使用方法://1.创建信号 RACSignal *signal...原创 2020-04-21 19:58:09 · 144 阅读 · 0 评论 -
ReactiveCocoa源码精讲(四) -- 集合操作
RAC集合操作前三篇我们已经基本了解RAC信号的创建,订阅和发送源码,今天我们来看一下关于RAC对集合做的自己的封装,看看它到底是如何进行操作的。RAC数组操作我们在学习RAC之前如果需要遍历一个数组的基本操作如下(我们这里使用forin就好了): NSArray *numbers = @[@1,@2,@3,@4]; for (id num in numbers) { ...原创 2020-04-20 08:56:58 · 126 阅读 · 0 评论 -
ReactiveCocoa源码精讲(三) -- RACReplaySubject
RACReplaySubject前面两篇文章,我们已经了解到了关于RACSignal和RACSubject的源码部分,并且,也已经了解这两个创建信号的方式的区别,今天我们来看一个RACSubject的相似类RACReplaySubject,这个类和之前类有什么区别???我们一个拭目以待!!!实现代码 //1.重复信号 RACReplaySubject *replaySubject =...原创 2020-04-16 21:22:04 · 121 阅读 · 0 评论 -
ReactiveCocoa源码精讲(二) -- RACSubject
RACSubject上文中,我们了解了RACSignal类创建信号订阅信号发送信号的过程分析。我们今天来观察另一个创建的方法,RACSubject创建信号。RACSubject创建信号RACSubject继承自RACSignal@interface RACSubject : RACSignal <RACSubscriber>/// Returns a new subject...原创 2020-04-15 09:32:19 · 201 阅读 · 0 评论 -
ReactiveCocoa源码精讲(一) -- RACSignal
RacSignalReactiveCocoaRACSignal使用代码RacSingal源码分析RACSignal 创建信号RACDynamicSignal 创建信号subscribeNext 订阅信号一旦订阅了信号,此信号就从冷信号变成了热信号。subscribe 订阅订阅者sendNext 发送信号实现图![RACSignal](https://img-blog.csdnimg.cn/2020...原创 2020-04-14 09:54:56 · 291 阅读 · 0 评论