- 博客(156)
- 资源 (19)
- 收藏
- 关注
原创 Sendable 协议-Swift 结构化并发的核心安全保障
/ 所有属性都是 let(不可变),直接遵循 Sendable// 跨 Task 传递:编译器判定安全Task {let user = User(id: 1, name: "张三", createTime: Date())Task {print(user.name) // 无数据竞争风险Sendable是编译期并发安全标记,无实际方法需实现;不可变值类型可直接遵循,可变类型需保证线程安全后遵循;核心作用:由编译器提前拦截跨线程数据竞争风险,而非运行时处理;
2026-03-15 04:01:11
266
原创 结构化并发中多网络下载任务的“完成”规则
结构化并发中,多网络下载任务的“完成”是指所有子任务实际执行完毕(成功/失败/取消),而非仅触发任务;仅提交任务,父任务会卡在for awaitwaitForAll/闭包结束节点,等待所有子任务进入终态;哪怕子任务失败/被取消,只要进入“终态”,就视为“完成”,父任务会继续执行后续逻辑;这一规则确保了结构化并发的“可管可控”,避免了非结构化并发中“任务触发后游离执行”的问题。
2026-03-14 19:14:53
216
原创 结构化并发(Structured Concurrency)
结构化并发的核心是任务生命周期与代码结构绑定,父任务管控子任务的创建、执行、取消,避免游离任务;Swift 中通过TaskGroup(多任务)、结构化Task(单任务)实现结构化并发,替代传统的 GCD 非结构化调用;核心价值:解决非结构化并发的资源泄漏、错误处理混乱问题,同时提升代码可读性和可维护性;适用场景:所有需要管理多个异步任务的场景(如批量网络请求、并行计算),是 Swift 并发模型的核心推荐范式。
2026-03-14 19:14:03
351
原创 Swift6.0为主版本小版本迭代
2024年后Swift的主版本保持为6.x,未推出7.0等新主版本,但有6.1/6.2/6.3等小版本迭代;小版本更新以“兼容优化、bug修复、性能提升”为主,无破坏性变更,开发者无需重构代码;Swift版本迭代核心逻辑:主版本做“突破性变更”,次版本做“完善和优化”,保证生态稳定。
2026-03-14 18:16:05
396
原创 Swift 版本历年更新记录(核心里程碑 + 关键特性)
Swift 版本更新节奏:早期每年 1-2 个版本,2019 年后趋于稳定(每年 1 个主版本 + 1 个小版本);核心演进方向:从“语法优化”→“ABI 稳定”→“并发模型”→“内存安全/宏系统”,逐步向“高性能、高安全、跨平台”迭代;关键节点:Swift 5.0(ABI 稳定)、Swift 5.5(并发革命)、Swift 6.0(严格并发)是三个最具里程碑意义的版本。
2026-03-14 18:13:20
560
原创 基于 async/await 的 Swift 并发模型重构
重构的核心是将嵌套的回调逻辑转为线性代码,结合try/catch统一错误处理,大幅提升可读性;替换 GCD 时,优先使用TaskTaskGroup实现结构化并发,用Actor替代手动加锁解决数据竞争;重构后需注意主线程调度(@MainActor)、兼容性和Sendable协议,保证并发安全。通过这套重构方式,异步代码的可维护性、可调试性和安全性会得到质的提升,这也是 Swift 并发模型的核心设计目标。
2026-03-14 18:09:14
456
原创 iOS26
可通过修改plist文件 UIDesignRequiresCompatibility 设置为yes,关闭毛玻璃效果。在iOS26中,系统默认开启了Liquid Glass 液态玻璃效果,UITabBar展示如上图;
2026-03-06 09:38:43
126
原创 OpenClaw二号员工
先通过PowerShell初始化WSL2并重启,再在Ubuntu终端执行一键部署脚本;配置同花顺API密钥完成行情对接,粘贴监控规则即可实现自动盯盘;用小盘价值策略回测验证效果,先模拟后实盘,控制风险。如果运行中遇到任何报错(比如插件安装失败、API对接超时),直接把报错信息发给我,我帮你快速定位解决。
2026-02-11 18:26:46
924
1
原创 大龙虾~~~
1、mac版安装:https://mp.weixin.qq.com/s/hvCbk09wXYMHdO8QWat8uw 2、官方skills:https://clawhub.ai/skills
2026-02-10 07:26:52
318
原创 Material 和 Cupertino
/ 核心导入,Flutter默认项目已包含 ``` #### 2. Cupertino 组件 命名风格:**所有组件均以`Cupertino`为前缀**,与Material组件明确区分(如`CupertinoNavigationBar`、`CupertinoButton`、`CupertinoCard`);- 关联关系:`MaterialApp` 包裹 `Scaffold`,`Scaffold` 中承载所有Material子组件(`AppBar`、`ElevatedButton`等)。
2026-02-01 09:11:20
615
原创 通用链接~~~
https://blog.csdn.net/weixin_43864837/article/details/134668791https://ix518.blog.csdn.net/article/details/131628155?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7EPaidSort-1-131628155-blog-127691852.2
2026-01-11 15:49:14
173
原创 悬垂指针 和 野指针
悬垂指针和野指针确实容易混淆,但本质都是指向无效内存,只是产生原因不同。两种指针的共同点都是EXC_BAD_ACCESS的常见原因,但预防方法不同。悬垂指针更多涉及对象生命周期管理,野指针更多是初始化问题;悬垂指针(Dangling Pointer)和野指针(Wild Pointer)都是无效指针,但产生原因和场景不同:常见场景:对象释放后,指针未置为 使用 (OC)或 (Swift)C/C++ 中:局部变量离开作用域后多线程中一个线程释放内存,另一线程仍在访问常见场景:声明指针变量但未初
2025-12-31 09:40:07
468
原创 EXC_BAD_ACCESS 和僵尸对象
EXC_BAD_ACCESS是"病",僵尸对象是"诊断工具"。不是一回事,但僵尸对象专门用来诊断EXC_BAD_ACCESS这类内存问题。
2025-12-31 09:27:15
373
原创 内存优化-(二)-oc&swift
无论是Objective-C还是Swift,内存优化的核心思想都是相似的:减少占用、及时释放、避免泄漏。但是,由于Swift在语言层面提供了更多值类型和现代语法,我们在Swift中可以通过合理使用值类型、懒加载等来优化内存。而在Objective-C中,我们更依赖于手动管理引用计数和自动释放池。在实际开发中,我们应该根据项目使用的语言,结合工具进行 profiling,找到内存瓶颈,然后针对性地优化。Objective-C 特别注意事项。
2025-12-31 08:43:02
681
原创 使用 os_unfair_lock 替代 DispatchQueue?!
我们使用 os_unfair_lock 来替代 DispatchQueue 作为锁机制。注意,os_unfair_lock 是 iOS 10.0+ 和 macOS 10.12+ 可用的。使用 os_unfair_lock 时需要注意,它必须被存储在适当的位置(例如,作为实例变量或静态变量),并且必须确保锁被正确初始化和使用。另外,os_unfair_lock 是一个互斥锁,并且不像 DispatchQueue 那样可以用于异步任务。它只是用于同步代码的锁。
2025-12-31 08:19:15
434
原创 使用 OSSignpost 标记内存关键节点
import os= nil,log: log,} else {// 使用示例} else {return nil。
2025-12-31 08:08:49
233
原创 内存优化-(一)
准备分成几个核心部分:诊断工具、编码实践、架构设计,最后总结一些关键原则。首先想到的是要给出一个全面的框架,因为内存优化涉及多个层面。内存优化不仅仅是代码层面的技巧,更重要的是建立正确的意识和持续监控的习惯。需要强调避免过度优化,内存管理要在性能、开发效率和可维护性之间取得平衡。考虑使用值类型(Struct)替代引用类型(Class),减少引用计数开销。:内存优化不是一次性的,应在开发周期中持续监控,尤其关注。:UIImage 未解码时占用较小,解码后内存暴增。:可视化对象引用关系,快速定位循环引用。
2025-12-31 08:02:07
835
原创 charles关闭后mac无法连接网络
简单来说:Charles 为了抓包,让系统把流量都导给它;但它关闭时,这个“导流”指令没有撤销,系统还在傻傻地把数据往一个不存在的端口送,所以全部失败了。
2025-12-30 11:40:46
622
原创 ios开发逆向安全防抓包
使用SSL Pinning(证书绑定):在客户端内置服务器证书或公钥,在建立SSL/TLS连接时进行验证,防止中间人攻击。避免使用明文传输:所有网络请求使用HTTPS,并且确保正确的证书验证。使用工具对Objective-C代码进行混淆,增加逆向难度。例如,类名、方法名、属性名使用无意义的字符串替换。使用系统API检测是否被调试,如果被调试则采取相应措施(如退出应用)。检查应用是否被重签名或篡改,可以通过比较嵌入的签名或检查文件完整性来实现。对敏感字符串进行加密,防止在二进制文件中直接显示。
2025-12-29 10:25:35
871
原创 ios卡顿优化
iOS 卡顿优化的核心思路是“主线程减负、渲染优化、资源高效利用”定位问题:使用 Time Profiler、Core Animation 等工具找到卡顿的具体原因(如耗时函数、过度绘制)。针对性优化主线程阻塞:将耗时操作移至子线程。UI 渲染瓶颈:简化视图层级、减少过度绘制、优化 Autolayout。资源问题:压缩图片、使用高效格式、及时释放内存。验证效果:通过 Instruments 或第三方工具监控优化后的帧率、内存占用,确保卡顿问题解决。
2025-11-14 07:34:31
1285
原创 ios开发图片上传git时压缩 图片被真实压缩了吗 此时再下载下来 图片大小变了吗
特性Git Hooks (压缩)Git LFS (管理)图片是否被压缩?是,本地文件被压缩工具处理。否,文件以原始大小存储在 LFS 服务器。下载后文件大小?变小,下载的是压缩后的版本。不变,下载的是原始大小的版本。核心目的减小文件体积,优化仓库和 App 大小。管理大文件,避免其拖累 Git 仓库性能。适用场景App 中最终使用的图片资源(如 jpg, png)。需要保留原始版本的大文件(如设计源文件、高清素材)。对于 iOS 开发中用于 App 内展示的图片资源,
2025-11-13 22:55:41
618
原创 Git LFS
Git LFS 是管理 Git 仓库中大文件的完美解决方案。显著减小仓库体积,让克隆和拉取速度飞快。保持 Git 操作的流畅性,即使项目中包含了大量设计源文件或二进制库。清晰地分离代码和大文件,使仓库更 “干净”。强烈建议在任何有大文件的 Git 项目中都采用 Git LFS,它能为你和你的团队节省大量的时间和带宽。
2025-11-13 22:44:19
770
原创 图片上传git时压缩
使用 Git Hooks 是在提交前自动压缩图片的绝佳方式,能有效控制 Git 仓库的大小。方案一 (sips:适合个人项目或快速设置,无需额外依赖。方案二 (pngquantjpegoptim:压缩效果更好,推荐用于对体积敏感的项目。长远之计:结合Git LFS来管理所有大文件,这是处理二进制资产的最佳实践。
2025-11-13 22:42:30
782
原创 Xcode的App Thinning Size Report分析包体积
通过,你能精准定位 App 体积的主要来源(是图片过大?还是第三方库冗余?),再针对性优化,从而有效减小用户下载大小,提升下载转化率。
2025-11-13 22:36:23
979
原创 ios-AVIF
AVIF 代表了图片格式的未来发展方向,提供了无与伦比的压缩效率和丰富的功能。在 iOS 开发中,它是继 WebP 之后又一个强大的包体积优化和网络性能优化工具。根据你的项目兼容性要求,选择合适的图片格式将为用户带来更快的下载速度和更好的体验。
2025-11-13 22:20:47
898
1
原创 ios-WebP
WebP 是一种非常优秀的图片格式,在 iOS 开发中,它是减小包体积和优化网络性能的强大工具。对于 iOS 14+ 的项目:强烈建议将所有合适的图片资源转换为 WebP 格式。对于需要兼容旧版本 iOS 的项目:可以考虑使用SDWebImage等库来引入 WebP 支持,特别是对于网络图片加载场景。通过合理地使用 WebP,你可以在不牺牲用户体验的前提下,显著提升你的 App 性能。
2025-11-13 22:19:56
1113
原创 ios包体积管理方案
iOS 包体积管理是一个持续的、需要团队全员参与的过程。分析:用找到体积的 “元凶”。优化资源:压缩、清理、使用合适的格式(SVG, WebP/AVIF)。代码:清理无用代码,审慎引入第三方库。配置:正确设置,开启Bitcode。策略:利用和来减小用户的初始下载大小。监控:将体积检查自动化,并定期回顾。通过以上这些方法,你完全可以将一个几百兆的 App 优化到一个非常理想的大小。
2025-11-13 22:18:37
1038
原创 热更新相关
并发队列+同步函数: 没有开启新线程;串行执行任务手动创建的串行队列+同步函数:没有开启新线程;串行执行任务主队列+同步函数:死锁并发队列+异步函数:有开启新线程;并发执行任务;手动创建的串行队列+异步函数:有开启新线程,且只开启一条新线程;串行执行任务;主队列+异步函数:没有开启新线程,串行执行任务注意:主队列的任务只会在主线程执行;同步函数没有开启...
2024-01-18 17:03:05
452
原创 devicesupport下载靠谱资源
iOSDeviceSupport: 存放iOS镜像文件,真机调试包,供大家参考,目前收录iOS8.0~iOS16持续更新中 - Gitee.com
2024-01-02 11:13:35
659
原创 责任链vs金融登录
金融app相对普通app而言,出于安全考虑,其安全校验方式比较多,以某些银行app为例,手机号登录成功后,会增加指纹、手势、OCR人脸等验证!//0 1 2 模拟责任链中密码、手势、指纹的优先级。//沿着责任链,指派给下一个业务处理。//没有业务处理,上抛。//当前业务处理掉了,上抛结果。//各个业务在该方法当中做时机业务处理。//基类BusinessObject。//当前业务进行处理。//模拟处理逻辑优先级。//响应者的处理方法。
2023-07-26 20:35:52
1000
原创 iosApplePay
4.2.1>Creating and Populating the Pass Package(创建一个包含Pass所有信息和资源文件的文件夹):Passes 的创建需要一个 pass.json 文件,这个 pass.json 文件包含 pass 的所有信息,如票据类型,logo、icon资源图片,过期时间、票据描述等信息。// 2.7 通过指定merchantCapabilities属性来指定你支持的支付处理标准,3DS支付方式是必须支持的,EMV方式是可选的,
2023-04-07 13:24:55
3922
原创 web--缓存(二)(NSURLProtocol)
NSURLProtocol是一个抽象类,我们在使用时一般使用它的子类,其作用是可以拦截网络请求,并可用重定向网络请求。这种方法还是隐藏着很多坑的,它的使用方法就不在这里赘述了,ios wkwebivew拦截js、css,图片资源:https://www.jianshu.com/p/4fc13d4d5607ios开发之---NSURLProtocol:https://www.jia...
2023-04-06 16:38:57
503
原创 App间URLScheme跳转配置
AScheme跳转到BScheme配置-iOS文档类资源-CSDN下载1、AScheme工程配置1.1》AScheme的info.plist中配置LSApplicationQueriesSchemes(即BScheme的URL Schems:AppB)1.2》AScheme的跳转代码2、BScheme工程配置2.1》BScheme配置自己的URL Type下的URL Schemes即AppB2.2》BScheme的AppDelegate中接收从AScheme跳转过来的数据..
2022-02-21 16:27:42
508
1
原创 ios解析测试包的crash
条件:用本死的jekins打的包:可在内网下载测试包的dsym文件测试同学下载的内网包出现crash:1》获取.crash文件1.1》xcode->window->Devices and Simulators ->View Device Logs->找到对应crash;1.2》如果应用已上架 通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志
2022-02-15 13:14:34
364
AScheme跳转到BScheme配置
2022-02-21
gcd处理ios多请求常用的几种情况
2018-10-24
dispatch_semaphore two
2018-10-22
dispatch_barrier_(a)sync
2018-10-25
h5余原生交互
2018-10-30
dispatch_group
2018-10-18
深拷贝与浅拷贝;copy与mutableCopy;容器类型的深拷贝;copy和strong;
2018-11-06
dispatch_group包含wait包含forever时长
2018-10-18
dispatch_group包含wait
2018-10-18
dispatch_semaphore
2018-10-19
NSPredicate
2018-08-17
respondsToSelector与instancesRespondToSelector
2018-10-31
cocoapodsAndFramework
2019-04-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅