自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Android自动化测试

自动化测试

2024-05-21 11:44:56 731

原创 苹果新规2024-5-1隐私新规的处理方法

在2023年苹果全球开发者大会(Worldwide Developers Conference,简称“WWDC”)上,苹果又宣布了2024年的春季新政策,同时在官网发布的《关于App Store提交的隐私更新》文档中新增了两类隐私保护要求,第一就是要求SDK开发者要增加SDK隐私清单和签名。第二是要求SDK开发者和App开发者如果使用了5类特殊的API,则需要声明具体的使用原因。

2024-04-25 16:09:56 637 1

原创 iOS自动化测试

自动化测试

2024-04-25 15:37:40 843 4

原创 Dio分析-Fetch过程分析

HttpClientAdapter,实现底层socket的建立和数据发送接收流程,主要涉及openurl, close, request stream写入和response stream读取的过程.参考。Interceptors,包括RequestInterceptors, ResponseInterceptor,ErrorInterceptor实现整个逻辑过程的流转和控制。Transformer,实现同步数据转换逻辑,实现请求数据转换和stream处理,响应数据转换和stream处理,参考。

2024-04-16 17:30:45 253 1

原创 Dio分析-Transform

自定义的StreamTransfomer/// 自定义一个 StreamTransformer ,/// 泛型类型 S 为入参类型,T 为出参类型/// 这些类型都是 Stream 中传递的数据类型// 用来生成一个新的 Stream 并且控制符合条件的数据// 转换之前的 Stream},},// 定义一个 StreamController,注意泛型类型为 T,也就是出参类型,因为// 我们是使用该 _controller 生成一个用来返回的新的 Stream

2024-04-12 11:06:39 934 1

原创 Dio分析-Interceptors

Dio设计的拦截器[Interceptor]用于协助处理[RequestOptions]http请求发送配置, [response]http响应,[DioException]过程异常。这些拦截器在每次请求和响应之间仅被调用一次,意味着重定向不会触发他们的行为。其他设计[InteceptorsWrapper],拦截器封装,帮助创建拦截器。[QueuedInterceptor]队列式拦截器,以task形式在队列中实现拦截器行为。

2024-03-29 11:07:24 1587 1

原创 Dio分析-HttpClientAdapter

用于Dio与底层HttpClient间的桥接。Dio向业务层开发者提供标准和友好的API接口HttpClient, Dart底层真实的网络请求处理对象。通过HttpClientAdapter,开发者可以使用各种自定义HttpClient,而非dart:io:HttpClient,只需要通过HttpClientAdapter实现桥接。

2024-03-28 14:03:02 1989

原创 realm iOS12 iOS14崩溃处理

启动崩溃,查看Log,主要是realm初始化问题。

2023-09-25 10:30:30 453 1

原创 YYText iOS17兼容问题

使用YYText ,1.0.7在iOS17会遇到如下崩溃主要原因是UIGraphicsBeginImageContext中的asert引发,而改接口早就标记为API_TO_BE_DEPRECATED,建议使用UIGraphicsImageRenderer替换。由于YYText早已没有维护,于是fork了一个自己的git进行修正,主要修正逻辑在textAsynLayer替换为。

2023-09-21 16:05:18 2197 1

原创 ZFPlayerControl内核替换为阿里云点播

视频播放

2023-09-18 11:32:24 289 1

原创 RxSwift细节(一)Observable Sink Producer

遵循Dispose,主要目的是封装订阅的Observer,一是可以通过dispose()取消订阅,避免在错误和结束后订阅继续进行,主要实现方法dispose(),二是分派事件,实现前转时的内部逻辑处理,主要方法forwardOn.Producer, 响应业务层的subscribe(Observer),调用子类的run方法,持有sinkDisposer令牌,维持sink的生命周期。subscribe,获得observer订阅的时机,并触发observable.run。回归之前UISwitch+Rx的实例。

2023-09-12 15:37:34 69 1

原创 RxSwift分析

总体来说,DelegateProxyType就是rx内部提供的代理,拦截所有delegate/datasource的回调方法,通过subscribeProxyDataSource实现rx内部的事件观察和处理逻辑,向forwardDelegate/forwardDataSource传递observable事件的数据。作为一个监听用户行为的监听序列,成为一个observable,重要的是对observer(通过subscribe注册的观察者)的事件分派(观察者on方法的调用)

2023-09-11 16:19:55 472

原创 NetworkMoyaBase objective-c和swift通用的网络封装库

通过Moya和Alamofire实现的网络封装库,适配支持objective-c的工程和完全swift工程的业务调用,通过swiftyJSON对网络返回的数据进行JSON化解析,通过HandyJSON和YYModel分别实现对数据的oc数据结构的转换和swift数据结构的转换。

2023-08-25 15:49:59 150 2

原创 Kingfisher图片处理器代码分析

kingfisher类似SDWebImage实现跨平台图片展现功能,包括图片下载管理,缓存和动态图片展现.

2023-08-01 17:39:30 338 1

原创 swift NightNight夜间模式设计分析

与objective-c的DKNightMode相同,对于当前控件实现背景色,字体颜色等在不同模式下的颜色设置和变更,同时提供模式变更的闭包调用。

2023-07-26 15:35:07 94 1

原创 swift的动态视图控制器路由设计

使用动态路由实现视图控制器的生成,跳转和参数转移。

2023-07-25 17:49:20 147

原创 基于Alamofire swift设计分析

Alamofire5.x实现技术分析

2023-07-05 10:21:32 197 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除