- 博客(145)
- 资源 (19)
- 收藏
- 关注
原创 通用链接~~~
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
147
原创 悬垂指针 和 野指针
悬垂指针和野指针确实容易混淆,但本质都是指向无效内存,只是产生原因不同。两种指针的共同点都是EXC_BAD_ACCESS的常见原因,但预防方法不同。悬垂指针更多涉及对象生命周期管理,野指针更多是初始化问题;悬垂指针(Dangling Pointer)和野指针(Wild Pointer)都是无效指针,但产生原因和场景不同:常见场景:对象释放后,指针未置为 使用 (OC)或 (Swift)C/C++ 中:局部变量离开作用域后多线程中一个线程释放内存,另一线程仍在访问常见场景:声明指针变量但未初
2025-12-31 09:40:07
419
原创 EXC_BAD_ACCESS 和僵尸对象
EXC_BAD_ACCESS是"病",僵尸对象是"诊断工具"。不是一回事,但僵尸对象专门用来诊断EXC_BAD_ACCESS这类内存问题。
2025-12-31 09:27:15
345
原创 内存优化-(二)-oc&swift
无论是Objective-C还是Swift,内存优化的核心思想都是相似的:减少占用、及时释放、避免泄漏。但是,由于Swift在语言层面提供了更多值类型和现代语法,我们在Swift中可以通过合理使用值类型、懒加载等来优化内存。而在Objective-C中,我们更依赖于手动管理引用计数和自动释放池。在实际开发中,我们应该根据项目使用的语言,结合工具进行 profiling,找到内存瓶颈,然后针对性地优化。Objective-C 特别注意事项。
2025-12-31 08:43:02
633
原创 使用 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
407
原创 使用 OSSignpost 标记内存关键节点
import os= nil,log: log,} else {// 使用示例} else {return nil。
2025-12-31 08:08:49
201
原创 内存优化-(一)
准备分成几个核心部分:诊断工具、编码实践、架构设计,最后总结一些关键原则。首先想到的是要给出一个全面的框架,因为内存优化涉及多个层面。内存优化不仅仅是代码层面的技巧,更重要的是建立正确的意识和持续监控的习惯。需要强调避免过度优化,内存管理要在性能、开发效率和可维护性之间取得平衡。考虑使用值类型(Struct)替代引用类型(Class),减少引用计数开销。:内存优化不是一次性的,应在开发周期中持续监控,尤其关注。:UIImage 未解码时占用较小,解码后内存暴增。:可视化对象引用关系,快速定位循环引用。
2025-12-31 08:02:07
790
原创 charles关闭后mac无法连接网络
简单来说:Charles 为了抓包,让系统把流量都导给它;但它关闭时,这个“导流”指令没有撤销,系统还在傻傻地把数据往一个不存在的端口送,所以全部失败了。
2025-12-30 11:40:46
438
原创 ios开发逆向安全防抓包
使用SSL Pinning(证书绑定):在客户端内置服务器证书或公钥,在建立SSL/TLS连接时进行验证,防止中间人攻击。避免使用明文传输:所有网络请求使用HTTPS,并且确保正确的证书验证。使用工具对Objective-C代码进行混淆,增加逆向难度。例如,类名、方法名、属性名使用无意义的字符串替换。使用系统API检测是否被调试,如果被调试则采取相应措施(如退出应用)。检查应用是否被重签名或篡改,可以通过比较嵌入的签名或检查文件完整性来实现。对敏感字符串进行加密,防止在二进制文件中直接显示。
2025-12-29 10:25:35
759
原创 ios卡顿优化
iOS 卡顿优化的核心思路是“主线程减负、渲染优化、资源高效利用”定位问题:使用 Time Profiler、Core Animation 等工具找到卡顿的具体原因(如耗时函数、过度绘制)。针对性优化主线程阻塞:将耗时操作移至子线程。UI 渲染瓶颈:简化视图层级、减少过度绘制、优化 Autolayout。资源问题:压缩图片、使用高效格式、及时释放内存。验证效果:通过 Instruments 或第三方工具监控优化后的帧率、内存占用,确保卡顿问题解决。
2025-11-14 07:34:31
1166
原创 ios开发图片上传git时压缩 图片被真实压缩了吗 此时再下载下来 图片大小变了吗
特性Git Hooks (压缩)Git LFS (管理)图片是否被压缩?是,本地文件被压缩工具处理。否,文件以原始大小存储在 LFS 服务器。下载后文件大小?变小,下载的是压缩后的版本。不变,下载的是原始大小的版本。核心目的减小文件体积,优化仓库和 App 大小。管理大文件,避免其拖累 Git 仓库性能。适用场景App 中最终使用的图片资源(如 jpg, png)。需要保留原始版本的大文件(如设计源文件、高清素材)。对于 iOS 开发中用于 App 内展示的图片资源,
2025-11-13 22:55:41
599
原创 Git LFS
Git LFS 是管理 Git 仓库中大文件的完美解决方案。显著减小仓库体积,让克隆和拉取速度飞快。保持 Git 操作的流畅性,即使项目中包含了大量设计源文件或二进制库。清晰地分离代码和大文件,使仓库更 “干净”。强烈建议在任何有大文件的 Git 项目中都采用 Git LFS,它能为你和你的团队节省大量的时间和带宽。
2025-11-13 22:44:19
704
原创 图片上传git时压缩
使用 Git Hooks 是在提交前自动压缩图片的绝佳方式,能有效控制 Git 仓库的大小。方案一 (sips:适合个人项目或快速设置,无需额外依赖。方案二 (pngquantjpegoptim:压缩效果更好,推荐用于对体积敏感的项目。长远之计:结合Git LFS来管理所有大文件,这是处理二进制资产的最佳实践。
2025-11-13 22:42:30
748
原创 Xcode的App Thinning Size Report分析包体积
通过,你能精准定位 App 体积的主要来源(是图片过大?还是第三方库冗余?),再针对性优化,从而有效减小用户下载大小,提升下载转化率。
2025-11-13 22:36:23
888
原创 ios-AVIF
AVIF 代表了图片格式的未来发展方向,提供了无与伦比的压缩效率和丰富的功能。在 iOS 开发中,它是继 WebP 之后又一个强大的包体积优化和网络性能优化工具。根据你的项目兼容性要求,选择合适的图片格式将为用户带来更快的下载速度和更好的体验。
2025-11-13 22:20:47
824
1
原创 ios-WebP
WebP 是一种非常优秀的图片格式,在 iOS 开发中,它是减小包体积和优化网络性能的强大工具。对于 iOS 14+ 的项目:强烈建议将所有合适的图片资源转换为 WebP 格式。对于需要兼容旧版本 iOS 的项目:可以考虑使用SDWebImage等库来引入 WebP 支持,特别是对于网络图片加载场景。通过合理地使用 WebP,你可以在不牺牲用户体验的前提下,显著提升你的 App 性能。
2025-11-13 22:19:56
1043
原创 ios包体积管理方案
iOS 包体积管理是一个持续的、需要团队全员参与的过程。分析:用找到体积的 “元凶”。优化资源:压缩、清理、使用合适的格式(SVG, WebP/AVIF)。代码:清理无用代码,审慎引入第三方库。配置:正确设置,开启Bitcode。策略:利用和来减小用户的初始下载大小。监控:将体积检查自动化,并定期回顾。通过以上这些方法,你完全可以将一个几百兆的 App 优化到一个非常理想的大小。
2025-11-13 22:18:37
1005
原创 热更新相关
并发队列+同步函数: 没有开启新线程;串行执行任务手动创建的串行队列+同步函数:没有开启新线程;串行执行任务主队列+同步函数:死锁并发队列+异步函数:有开启新线程;并发执行任务;手动创建的串行队列+异步函数:有开启新线程,且只开启一条新线程;串行执行任务;主队列+异步函数:没有开启新线程,串行执行任务注意:主队列的任务只会在主线程执行;同步函数没有开启...
2024-01-18 17:03:05
449
原创 devicesupport下载靠谱资源
iOSDeviceSupport: 存放iOS镜像文件,真机调试包,供大家参考,目前收录iOS8.0~iOS16持续更新中 - Gitee.com
2024-01-02 11:13:35
650
原创 责任链vs金融登录
金融app相对普通app而言,出于安全考虑,其安全校验方式比较多,以某些银行app为例,手机号登录成功后,会增加指纹、手势、OCR人脸等验证!//0 1 2 模拟责任链中密码、手势、指纹的优先级。//沿着责任链,指派给下一个业务处理。//没有业务处理,上抛。//当前业务处理掉了,上抛结果。//各个业务在该方法当中做时机业务处理。//基类BusinessObject。//当前业务进行处理。//模拟处理逻辑优先级。//响应者的处理方法。
2023-07-26 20:35:52
989
原创 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
3834
原创 web--缓存(二)(NSURLProtocol)
NSURLProtocol是一个抽象类,我们在使用时一般使用它的子类,其作用是可以拦截网络请求,并可用重定向网络请求。这种方法还是隐藏着很多坑的,它的使用方法就不在这里赘述了,ios wkwebivew拦截js、css,图片资源:https://www.jianshu.com/p/4fc13d4d5607ios开发之---NSURLProtocol:https://www.jia...
2023-04-06 16:38:57
500
原创 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
483
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
349
原创 ios加密算法AES
1、加密相关:加密算法概述 https://mp.weixin.qq.com/s/aorP5T5rDFiljIMeLXCBvg2、ECB和CBC:ECB和CBC区别:https://blog.csdn.net/hqmln/article/details/84715503ECB和CBC模式解读:https://www.cnblogs.com/wangle1001986/p/11468419.html3、AES相关:1》AES加密过程详解https://blog.csdn.net/q
2022-01-18 13:24:01
3087
原创 网络协议--tomcat服务器搭建
启动服务器模拟软件tomcat :1》java环境搭建:安装JDK(JDK==> JRE(java run environment)===> JVM (编译成的字节码转换成二进制文件))2》启动tomcat服务器:2.1》Mac电脑: cd到tomcat的bin文件夹(即startup.sh所在的文件夹);2.2》直接执行shstartup.sh会报错:➜ bin sh startup.shCannot find ./catalina.shThe file...
2021-11-23 00:18:45
551
原创 迁移git仓库某分支到另一个仓库某分支
当前仓库地址为:git@git.xiaojukeji.com:one-ios/UnifyPassportService.git待迁移分支为:global_release_20210916_nationalTick目的仓库地址为:git@git.xiaojukeji.com:global/UnifyPassportService.git目的分支为:global_release_20211028_nationalTick步骤:cd到.git目录下并checkout到old
2021-10-28 16:45:44
5515
原创 ios15导致flutter的默认字体变粗
在Flutter自定义字体 - 芒果文档升级为ios15后导致,flutter未设置font的字体变粗,后做了如下对比Text( 'Get Started1', style: TextStyle( fontSize: 50, fontWeight: FontWeight.normal, ),),Text( 'Get Started2', style: TextStyle(fontSize: 50),),Text( 'Get Started3', st
2021-10-13 21:51:41
2965
原创 重签名
重签名:旧包的bundle identifier是com.bxbank.mobile-bank ;用新的bundleIdentifier对旧包重新签名一、从embedded.mobileprovision中提取出entitlements.plist权限文件1》security cms -D -i embedded.mobileprovision > temp.plist2》/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.
2020-05-25 19:15:26
1217
原创 自动化打包---fastlane
简单写下我使用fastlane的过程,及遇到的问题,希望自己下次在用到fastlane的时候能迅速避坑,希望也能帮助在看文章的你:我的步骤如下:1、配置ruby环境:fastlane是基于ruby的,如果你对电脑没有ruby的话。在这有个小建议:希望你安装国内的ruby源,因为如果你用国外的ruby的话,在下面为工程安装fastlane时,因为墙的原因,终端会卡在某个地方如果你已经安装...
2019-11-09 19:41:57
462
原创 集成RN遇见的坑
先来简单了解下相关概念:搭建环境:1、安装必需的软件1》Homebrew:Mac系统的包管理工具,用于安装NodeJS和一些其他必须的工具软件2》Node:用Homebrew安装Node.js(是一个基于Chrome V8引擎的js运行环境)设置npm镜像:(npm:node package manager 节点包管理器,是Node.js的包管理器,用于节点插件的管理...
2019-09-28 08:48:24
806
原创 NSURLProtol(NSURLSession与 NSURLConnection区别)
在使用NSURLProtocol拦截原生请求时,也有坑,这关乎于你用的AFN是哪个版本的,当然如果你用的是最新的AFN(NSURLSession)那么你会遇见拦截不到请求的问题(待完善,工作笔记在公司电脑上,且等我为你细细分解)...
2019-09-28 08:27:44
303
原创 web--缓存(二)(NSURLProtocol)
之前的工作笔记在公司电脑上,因此这里就先来浅谈下NSURLProtocol做web缓存时令人印象深刻的坑吧!1、使用的是UIWeb和WKWeb的区别:UIWeb就比较简单了,随便网上搜下就能找到NSURLProtol使用方法,按上边的做就行;WKWeb就有点麻烦了,因为和UIWeb不一样,wk需要做些特殊的设置,才能拦截到https和http请求(待完善);2、对于post请求的处...
2019-09-28 08:23:17
268
原创 web--缓存(一)(HTTP + APP cahe)
最近在写一个web容器,容器有一一个小功能是要对web做缓存,所以最近一直研究ios的web缓存,在研究过程中遇到不少问题也收货颇多,现总结如下:web缓存的目的:节省服务器资源;使页面加载更流畅,减少等待时间增加用户体验;节省用户流量等。。。web缓存有很多种方法NSURLCache、App Cache(Manifest文件)、NSURLProtocol:1、NSURLCache(i...
2019-09-08 16:56:53
727
原创 安卓笔记-第一行代码版(看书慢,故不打算再抠书,但笔记是心血)
/Users/yangyangzi/Desktop/YangZi2/android/第一行代码学习笔记.rtfd (公司电脑)第一章安卓系统架构四层架构:1、Linux内核层:为安卓设备的各种硬件提供底层驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、wifi驱动、电源管理2、系统运行库层:通过c/c++库为安卓系统提供主要特性支持。如sqlite库提供数据库支持,o...
2019-09-02 19:21:21
3090
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订阅