<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[淡暗]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/squallmouse</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; squallmouse]]></copyright><item><title><![CDATA[xcode16.2 flutter无法运行iOS模拟器 Error (Xcode): stat cache file ‘.../DerivedData/SDKStatCaches.noindex/]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/146565703</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/146565703</guid><author>squallmouse</author><pubDate>Thu, 27 Mar 2025 17:06:37 +0800</pubDate><description><![CDATA[xcode升级到16.2后,flutter运行iOS模拟器出现如下错误。AI说是DerivedData缓存问题,让删除缓存.结果并没有用.且删除后xcode也出现问题。xcode中settings。]]></description><category></category></item><item><title><![CDATA[XCode16.0 Command PhaseScriptExecution failed with a nonzero exit code 的错误]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/143205352</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/143205352</guid><author>squallmouse</author><pubDate>Thu, 24 Oct 2024 12:00:52 +0800</pubDate><description><![CDATA[把ENABLE_USER_SCRIPT_SANDBOXING  设置为NO。如果pod的版本<1.14.3。]]></description><category></category></item><item><title><![CDATA[CocoaPods pod init失败 - undefined method `map‘ for nil -PBXFileSystemSynchronizedRootGroup]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/143188486</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/143188486</guid><author>squallmouse</author><pubDate>Wed, 23 Oct 2024 17:00:14 +0800</pubDate><description><![CDATA[【代码】CocoaPods pod init失败 - undefined method `map‘ for nil -PBXFileSystemSynchronizedRootGroup。]]></description><category></category></item><item><title><![CDATA[03.02-适配器模式(Adapter)]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126107317</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126107317</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 18:37:38 +0800</pubDate><description><![CDATA[将某个接口转换成客户端期望的另一个接口表示,主要是为了兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作适配器模式分为类适配器模式和对象适配器模式。]]></description><category></category></item><item><title><![CDATA[03. 01- 代理模式(Proxy)]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126105736</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126105736</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 17:23:13 +0800</pubDate><description><![CDATA[由于某些原因需要给某对象提供一个代理以控制该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介.]]></description><category></category></item><item><title><![CDATA[02. 04-建造者模式]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126104896</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126104896</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 16:53:19 +0800</pubDate><description><![CDATA[建造者模式]]></description><category></category></item><item><title><![CDATA[02. 02-工厂模式]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126102007</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126102007</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 15:21:33 +0800</pubDate><description><![CDATA[工厂模式]]></description><category></category></item><item><title><![CDATA[02. 01-单例模式(singleton)]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126095521</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126095521</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 10:10:26 +0800</pubDate><description><![CDATA[单例模式]]></description><category></category></item><item><title><![CDATA[02. 00-设计模式分类]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/126094329</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/126094329</guid><author>squallmouse</author><pubDate>Mon, 01 Aug 2022 09:21:54 +0800</pubDate><description><![CDATA[设计模式分类]]></description><category></category></item><item><title><![CDATA[2.01_SDWebImage (5.12.3)源码分析]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/124129975</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/124129975</guid><author>squallmouse</author><pubDate>Fri, 15 Apr 2022 10:35:13 +0800</pubDate><description><![CDATA[文章目录@[toc]0. 基本使用入口1. 取消已有的下载操作2.  获取 SDWebImageManager 单例1. 缓存管理器2. 下载管理器3. _failedURLs4. _runningOperations3. 设置占位图4. 加载图片1.failedURLs2. operation3. 获取图片1. 缓存查找2. 去网络下载图片5. 记录获取图片的操作6. 显示图片
![image.png](https://img-blog.csdnimg.cn/img_convert/0cec5174ec1]]></description><category></category></item><item><title><![CDATA[1.01_AFNetworking(4.0.1)源码分析(一)]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/124115265</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/124115265</guid><author>squallmouse</author><pubDate>Tue, 12 Apr 2022 11:55:04 +0800</pubDate><description><![CDATA[文章目录0. 系统sessionAFNetworking在这里插入图片描述在这里插入图片描述1. 网络通信模块AFURLSessionManager/AFHTTPSessionManager

0. 系统session


创建请求路径URL
创建一个session的配置
建立会话对象,(需要session配置)
建立一个可变的请求(NSMutableURLRequest)
建立请求任务(也可以使用代理的方法)
执行请求任务


AFNetworking


1. 网络通信模块
AFURLSessionMa]]></description><category></category></item><item><title><![CDATA[01. 0.设计模式的7大原则]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123988303</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123988303</guid><author>squallmouse</author><pubDate>Wed, 06 Apr 2022 14:23:31 +0800</pubDate><description><![CDATA[文章目录1. 单一职责原则基本介绍总结2. 接口隔离原则基本介绍总结3. 依赖倒转原则(Dependence Inversion Principle)基本介绍总结4. 里氏替换原则OO中的继承性的思考和说明基本介绍总结5. 开闭原则(Open Closed Principle)基本介绍总结6.迪米特法则基本介绍注意事项和细节7. 合成复用原则基本介绍设计原则核心思想

7大原则,23种设计模式
使用设计模式的目的:低耦合性,高内聚性,可维护性,可扩展性,重用性,灵活性

低耦合性,高内聚性:模块内部很紧密,]]></description><category></category></item><item><title><![CDATA[0.0UML类图]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123988162</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123988162</guid><author>squallmouse</author><pubDate>Wed, 06 Apr 2022 13:51:05 +0800</pubDate><description><![CDATA[文章目录1. 基本介绍2. UML类图1. 依赖关系(dependence)2. 泛化关系(generalization)3. 实现关系(Implementation)4. 关联关系(association)5.聚合关系(Aggregation)6.组合关系(composition)

1. 基本介绍

UML - Unified modeling language UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,用于帮组软件开发人员进行思考和记录思路的结果
UML本身是一套符号的规定,这些]]></description><category></category></item><item><title><![CDATA[13.02-耗电优化]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123987981</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123987981</guid><author>squallmouse</author><pubDate>Wed, 06 Apr 2022 13:37:24 +0800</pubDate><description><![CDATA[文章目录1. 耗电的主要来源2. 耗电优化

1. 耗电的主要来源


2. 耗电优化


尽可能降低CPU、GPU功耗


少用定时器


优化I/O操作




尽量不要频繁写入小数据，最好批量一次性写入
读写大量重要数据时，考虑用dispatch_io，其提供了基于GCD的异步操作文件I/O的API。用dispatch_io系统会优化磁盘访问
数据量比较大的，建议使用数据库（比如SQLite、CoreData）



网络优化



减少、压缩网络数据.
如果多次请求的结果是相同的，尽量使用缓存.
使]]></description><category></category></item><item><title><![CDATA[13.01CPU&GPU_卡顿]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123986752</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123986752</guid><author>squallmouse</author><pubDate>Wed, 06 Apr 2022 12:57:17 +0800</pubDate><description><![CDATA[文章目录1. 屏幕成像原理屏幕成像原理卡顿产生的原因2. 卡顿优化1. CPU2. GPU3. 3. 离屏渲染卡顿检测

1. 屏幕成像原理


屏幕成像原理

iOS 是每秒60帧
1S/60 = 16.7ms
每16.7ms产生一个垂直同步信号(VSync),刷新屏幕

卡顿产生的原因
每当垂直同步信号来到时,就会到帧缓冲区中读取屏幕内容,然后刷新屏幕.


如果cpu + GPU 处理的时间 多于16.7ms,那么当垂直同步信号发出时,会发现帧缓存区内没有内容可以刷新屏幕,
那么这一次,屏幕内容不变,]]></description><category></category></item><item><title><![CDATA[12.06-自动释放池(autoreleasepool)]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123982997</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123982997</guid><author>squallmouse</author><pubDate>Wed, 06 Apr 2022 12:02:19 +0800</pubDate><description><![CDATA[文章目录1. 自动释放池查看CPP代码
![在这里插入图片描述](https://img-blog.csdnimg.cn/a1626445fc90424a8360f56d86fac826.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5reh5pqX5LqR5LmL6YGl,size_20,color_FFFFFF,t_70,g_se,x_16)2. AutoreleasePoolPage的结构3. ]]></description><category></category></item><item><title><![CDATA[12.05-dealloc & weak表]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123849093</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123849093</guid><author>squallmouse</author><pubDate>Wed, 30 Mar 2022 17:17:35 +0800</pubDate><description><![CDATA[文章目录1. -dealloc1. _objc_rootDealloc2. rootDealloc3. object_dispose在这里插入图片描述4. objc_destructInstance5. clearDeallocating()6. clearDeallocating_slow1. weak 表1. weak_clear_no_lock

引用计数可以直接存储在优化过的isa指针中,当引用过多,就会存储在Side Table中

refcnts : 存放着引用计数的散列表

1. -deall]]></description><category></category></item><item><title><![CDATA[12.04-内存管理_Copy,MutableCopy]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123848724</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123848724</guid><author>squallmouse</author><pubDate>Wed, 30 Mar 2022 16:02:36 +0800</pubDate><description><![CDATA[文章目录1. 可变&amp;不可变2.深拷贝&amp;浅拷贝
1. 可变&amp;不可变




copy :


copy 出来的都是不可变的类型


MutableCopy :


mutableCopy 出来的都是可变对象


2.深拷贝&amp;浅拷贝

对不可变类型的数据进行copy,就是浅拷贝(指针拷贝)


源数据和目标数据都是不可变的, 所以为了不让费内存,就不重新赋值一块内存了,直接指针拷贝,大家共用一块内存就可以了


其它的组合都是深拷贝(内存拷贝)


因为不论是源数据,还是目标数据]]></description><category></category></item><item><title><![CDATA[12.03-内存管理_Tagged Pointer]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123496310</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123496310</guid><author>squallmouse</author><pubDate>Tue, 15 Mar 2022 10:45:29 +0800</pubDate><description><![CDATA[文章目录1. Tagged Pointer
1. Tagged Pointer


用于优化NSNumber , NSDate , NSString 等小对象的存储.


在没有使用tagged Pointer之前,NSNumber等对象需要动态分配内存,维护引用计数等,NSNumber指针存储的是堆中的对象地址.


使用tagged Pointer之后,NSNumber指针里面存储的数据变成了tag(数据类型) + Data



tag : 标记 表明里面存储的是什么类型(NSNumber,NSDat]]></description><category></category></item><item><title><![CDATA[12.02-内存管理-内存布局]]></title><link>https://blog.youkuaiyun.com/squallmouse/article/details/123496115</link><guid>https://blog.youkuaiyun.com/squallmouse/article/details/123496115</guid><author>squallmouse</author><pubDate>Tue, 15 Mar 2022 10:31:19 +0800</pubDate><description><![CDATA[文章目录1.内存布局
1.内存布局


可以看看各个变量的地址大小



]]></description><category></category></item></channel></rss>