Sheffi66
码龄10年
求更新 关注
提问 私信
  • 博客:120,127
    社区:28
    问答:1,309
    121,464
    总访问量
  • 65
    原创
  • 544
    粉丝
  • 49
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:山东省
加入CSDN时间: 2016-03-07

个人简介:生如逆旅单行道,哪有岁月可回头。

博客简介:

Sheffi

博客描述:
做最好的自己。
查看详细资料
个人成就
  • 获得712次点赞
  • 内容获得133次评论
  • 获得565次收藏
  • 博客总排名17,735名
  • 原力等级
    原力等级
    3
    原力分
    93
    本月获得
    193
创作历程
  • 30篇
    2025年
  • 3篇
    2023年
  • 1篇
    2019年
  • 2篇
    2018年
  • 30篇
    2016年
成就勋章
TA的专栏
  • 大模型
    1篇
  • Flutter
  • iOS
    55篇
  • Object-C
    2篇
  • iOS开发
    1篇
  • iOS面试题
  • swift
  • iOS第三方集成
    2篇
  • Java笔记
    1篇
  • C
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 7

TA参与的活动 0

创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

28人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

iOS 触摸事件完整传递链路:Hit-Test 全流程深度解析

iOS触摸事件主要包括Touch Events(手指触摸、3D Touch、Apple Pencil)、Motion Events(加速度计、陀螺仪)和Remote Events(远程控制)。UITouch对象描述了触摸状态流转(Began→Moved→Ended/Cancelled)及核心属性,如位置、压力、倾斜角度等。UIEvent作为事件容器,可获取所有相关UITouch对象及时间戳,用于处理用户交互行为。
原创
博文更新于 2025.12.16 ·
345 阅读 ·
6 点赞 ·
1 评论 ·
9 收藏

iOS 路由机制深度解析:URLRouter & Target-Action & Scheme

iOS主流路由方案对比 本文对比了iOS开发中三种主流的路由方案: URL Router方案(如JLRoutes、MGJRouter): 优点:解耦彻底、支持DeepLink、配置灵活 缺点:参数传递受限、无编译期类型检查、硬编码URL字符串 Target-Action方案(如CTMediator): 优点:无需注册、延迟加载、原生调用 缺点:依赖runtime、方法名硬编码、缺少编译检查 Protocol-Class方案(如BeeHive、Swinject): 优点:类型安全、编译期检查、IDE支持好 缺
原创
博文更新于 2025.12.16 ·
784 阅读 ·
16 点赞 ·
0 评论 ·
11 收藏

iOS 组件化:模块拆分、依赖反转、解耦实践

移动端组件化架构设计 本文介绍了移动端组件化架构的核心概念和实施方法。主要内容包括: 痛点分析:传统单体架构存在编译时间长、代码冲突频繁、业务边界模糊等问题 组件分类: 基础组件:纯技术能力封装 功能组件:可复用业务功能 业务组件:具体业务模块 依赖原则: 上层可依赖下层 同层通过协议通信 禁止下层依赖上层和循环依赖 拆分策略: 按业务边界划分 根据团队结构划分 按变更频率划分组件粒度 组件化架构通过分层解耦,实现了独立开发、测试和发布,解决了单体架构的各种痛点。
原创
博文更新于 2025.12.15 ·
1322 阅读 ·
40 点赞 ·
0 评论 ·
28 收藏

iOS In-App Purchase 自动续订订阅完整实现指南

本文摘要: 自动续订订阅是iOS应用变现的核心模式,适用于流媒体、云存储等持续服务场景。文章系统讲解了从配置到实现的完整流程:首先对比各类订阅模式特点,解析订阅生命周期和关键术语;然后详细说明App Store Connect中的订阅组创建、产品配置和服务器通知设置;最后展示客户端StoreKit实现方案,包括产品标识符定义、订阅管理器封装和支付队列观察机制。全文提供可落地的代码示例和技术细节,帮助开发者掌握自动续订订阅的全链路实现。
原创
博文更新于 2025.12.15 ·
925 阅读 ·
18 点赞 ·
0 评论 ·
29 收藏

Swift 内存管理与循环引用深度解析:从原理到实战

内存问题严重影响App性能,导致卡顿、闪退和耗电。常见问题包括循环引用、闭包捕获self、定时器和通知未释放等。Swift内存管理采用ARC机制,通过引用计数自动管理对象生命周期。内存布局分为栈(存放值类型)、堆(存放引用类型)和全局区域。理解这些原理有助于识别和解决内存泄漏,提升App稳定性。
原创
博文更新于 2025.12.12 ·
858 阅读 ·
21 点赞 ·
0 评论 ·
17 收藏

iOS 包体积优化实战:从 120MB 减到 50MB 的完整指南

移动应用包体积直接影响用户下载转化率和留存率。数据显示,每增加6MB包体积,转化率下降1%,超过200MB需WiFi下载会导致30-50%用户流失。优化路线分四阶段:资源优化(图片/音视频压缩)、代码优化(移除冗余)、第三方库精简、按需加载技术(App Thinning)。通过逐步优化,目标从120MB降至50MB,减少58%体积,显著提升用户体验和市场竞争力。存储压力大的低配设备用户尤其受益。
原创
博文更新于 2025.12.11 ·
633 阅读 ·
23 点赞 ·
0 评论 ·
22 收藏

iOS App 启动优化全流程指南:冷启动与热启动深度解析

iOS应用启动性能对用户体验和商业价值至关重要。本文分析了三种启动类型:冷启动(完整加载,耗时1-3秒)、热启动(部分资源缓存,快20-30%)和恢复启动(后台恢复,<100ms)。启动时间直接影响用户留存,如超过3秒可能导致25-40%留存下降。常见优化挑战包括动态库过多、+load方法滥用、首页复杂度高、初始化任务堆积和主线程阻塞。通过启动类型识别和针对性优化,可显著提升应用性能指标。
原创
博文更新于 2025.12.11 ·
1288 阅读 ·
34 点赞 ·
0 评论 ·
19 收藏

SwiftUI 性能优化完全指南:避免 Body 不必要重新渲染

本文探讨了SwiftUI中视图渲染的性能优化问题。通过代码示例展示了状态变化导致的不必要视图重计算现象,分析了其对CPU、电池、界面流畅度的影响。文章详细解析了SwiftUI视图生命周期的工作原理,包括结构体初始化、body计算、onAppear等阶段,并对比了结构标识与显式标识两种视图标识机制。最后介绍了SwiftUI的视图比较决策流程,为开发者理解性能优化提供了理论基础。
原创
博文更新于 2025.12.10 ·
555 阅读 ·
5 点赞 ·
0 评论 ·
12 收藏

Swift Actor 完全指南:使用场景、性能优化与线程安全

Swift Actor 并发编程模型 Swift Actor 提供了一种线程安全的并发编程方案,解决了传统并发编程中的痛点: 线程安全保证:Actor 通过编译器强制隔离,确保同一时间只有一个任务访问其成员,避免了数据竞争问题。 简化并发编程:相比手动加锁的方案,Actor 自动处理同步问题,开发者无需管理锁机制,减少死锁风险。 访问规则: 外部访问 Actor 成员需要使用 await 关键字 内部方法可以同步访问所有成员 访问其他 Actor 实例仍需 await 与 Class 对比: 都是引用类型
原创
博文更新于 2025.12.10 ·
728 阅读 ·
14 点赞 ·
0 评论 ·
20 收藏

Swift 并发深度指南:Task、Detached Task 与 TaskGroup 完全解析

Swift并发模型包含结构化并发(如async let、TaskGroup)和非结构化并发(如Task{}、Task.detached)。结构化并发自动管理子任务生命周期,支持取消传播和优先级继承;非结构化并发更灵活但需手动管理。Task基础包括创建执行、优先级设置(从.high到.background)、继承特性(上下文、优先级等)和生命周期管理。选择指南建议根据场景选用合适方式,如并行数据获取用async let,动态任务用TaskGroup,UI更新用@MainActor Task等。
原创
博文更新于 2025.12.10 ·
1159 阅读 ·
20 点赞 ·
0 评论 ·
19 收藏

Swift 宏(Swift Macro)完全指南:如何改变你的编程方式

Swift 宏简介 Swift 5.9 引入的宏功能解决了开发中的多个痛点,包括重复样板代码、调试困难等问题。宏是一种编译时代码转换机制,通过读取源代码并生成新代码来优化开发流程。 核心优势 类型安全:生成的代码经过完整类型检查 编译时验证:错误在编译阶段捕获 IDE支持:可展开查看生成代码 可组合性:多个宏可一起使用 宏类型 独立表达式宏(#开头):生成表达式值 独立声明宏(#开头):生成声明 附加成员宏:为类型添加新成员 附加访问器宏:为属性添加访问器 宏相比运行时反射和代码生成工具,提供了更好的类型安
原创
博文更新于 2025.12.09 ·
964 阅读 ·
34 点赞 ·
0 评论 ·
26 收藏

SwiftUI NavigationStack 完全指南:从入门到精通

本文全面介绍了 SwiftUI 中新一代导航组件 NavigationStack 的核心概念和使用方法。主要内容包括: NavigationStack 的基础架构和工作原理,采用数据驱动方式管理导航栈 与旧版 NavigationView 的对比,展示其编程式导航、状态管理等优势 核心用法演示,包括基本导航、编程式导航和多页面跳转 关键组件 NavigationPath 和 navigationDestination 的深度解析 高级功能如深度链接、状态恢复的实现方案 NavigationStack 解决了
原创
博文更新于 2025.12.09 ·
701 阅读 ·
21 点赞 ·
0 评论 ·
20 收藏

Swift 并发模型深度对比:GCD vs Combine vs Async/Await

本文对比了iOS开发中三种主流并发编程模型:GCD、Combine和Async/Await。GCD作为底层并发框架,基于队列和任务概念,提供多种队列类型和QoS优先级控制,包含异步执行、同步执行、延迟执行、任务组等核心API。Combine采用响应式编程范式,而Async/Await则引入结构化并发。文章详细解析了GCD的队列类型、优先级系统以及常用API,包括DispatchGroup、DispatchSemaphore和DispatchWorkItem等实用工具,为开发者选择适合的并发解决方案提供了技术
原创
博文更新于 2025.12.09 ·
765 阅读 ·
21 点赞 ·
0 评论 ·
13 收藏

SwiftUI 状态管理完全指南:State / Binding / ObservedObject / EnvironmentObject 深度解析

SwiftUI状态管理机制解析 本文深入剖析了SwiftUI中四种核心属性包装器的使用场景和工作原理: @State - 用于视图内部管理的简单值类型状态,生命周期与视图绑定 @Binding - 提供对父视图状态的双向引用,实现父子视图数据同步 @ObservedObject - 管理外部传入的引用类型数据模型 @EnvironmentObject - 实现跨层级视图的数据共享 文章通过对比表格、工作原理图示和代码示例,详细阐述了每种属性包装器的特点、适用场景和常见陷阱。特别强调了@State应仅用于视图
原创
博文更新于 2025.12.09 ·
1152 阅读 ·
42 点赞 ·
0 评论 ·
15 收藏

iOS 内存分配机制:Malloc、VM、Dirty Memory

本文深入解析iOS内存管理机制,从应用层到物理内存,构建完整的层次化认知。系统分为三大核心层面:用户态内存分配器(Malloc)处理不同大小对象分配;虚拟内存系统(VM)管理地址映射和缺页处理;内存页状态(Dirty/Clean)决定内存回收策略。通过架构图和分类表展示iOS内存从应用调用到物理RAM的完整流程,包括Nano Zone、Scalable Zone等分配策略,以及Wired Memory等内存类型特性,为性能优化和问题排查提供理论基础。
原创
博文更新于 2025.12.08 ·
634 阅读 ·
16 点赞 ·
1 评论 ·
10 收藏

函数调用栈与野指针崩溃的定位思路

iOS野指针崩溃分析与栈帧原理 野指针崩溃是iOS开发中最难排查的问题之一,具有随机性强、现场迷惑和难以复现的特点。本文从ARM64架构的函数调用栈原理入手,深入分析野指针崩溃的成因。 函数调用栈采用栈帧结构管理,每个栈帧包含局部变量、保存寄存器和返回地址等关键信息。ARM64架构通过SP、FP、LR等寄存器管理栈操作,函数调用时保存FP和LR,返回时恢复。野指针通常发生在释放后仍被访问的内存区域,由于栈帧管理不当导致随机崩溃。理解这些底层机制对定位和解决野指针问题至关重要。
原创
博文更新于 2025.12.08 ·
768 阅读 ·
11 点赞 ·
0 评论 ·
9 收藏

Swift 与 OC 混编底层交互原理

Swift与OC混编机制解析 本文深入探讨了Swift与Objective-C混编的底层实现原理,主要包括: 混编基础架构: 两种混编方向:OC调用Swift(通过自动生成头文件)和Swift调用OC(通过桥接头文件) 关键文件:桥接头文件(xxx-Bridging-Header.h)和自动生成头文件(xxx-Swift.h) 桥接头文件机制: 桥接头文件用于Swift访问OC代码 Swift编译器(Clang Importer)将OC接口转换为Swift可用的模块声明 转换后Swift代码可直接使用OC类
原创
博文更新于 2025.12.08 ·
982 阅读 ·
33 点赞 ·
0 评论 ·
9 收藏

dyld 加载性能优化:App 启动前到底做了什么

当用户点击 App 图标到看到第一个界面,这短短的几百毫秒内,系统做了大量的工作。这段时间被称为pre-main 阶段,完全由 dyld(Dynamic Loader)主导。理解 dyld 的工作原理,是进行启动优化的基础。本文将深入剖析 dyld 的每一个步骤,并给出针对性的优化策略。│ 启动优化检查清单 ││ ││ 【动态库优化】 ││ □ 自定义动态库数量 ≤ 6 ││ □ 小型工具库转为静态链接 ││ □ 非必要库延迟加载 ││ □ 合并功能相近的 Framework ││ │。
原创
博文更新于 2025.12.05 ·
1141 阅读 ·
29 点赞 ·
0 评论 ·
30 收藏

Mach-O 文件解析:App 二进制的内部结构

本文深入解析了iOS/macOS应用的Mach-O二进制文件格式。主要内容包括:1) Mach-O概述,介绍其作为苹果系统可执行文件格式的特点及常见类型(可执行文件、动态库、插件等);2) 通用二进制文件结构,展示如何通过lipo工具处理多架构文件;3) Mach-O的三大组成部分(Header头部、Load Commands加载命令和Data数据段),为逆向工程、启动优化、安全加固等场景提供底层支持。文章采用图表结合命令示例的方式,清晰展示了Mach-O的内部结构和工作原理。
原创
博文更新于 2025.12.05 ·
884 阅读 ·
8 点赞 ·
0 评论 ·
19 收藏

iOS Crash 本质与捕获修复方案

iOS崩溃的本质是应用运行中发生的错误,主要分为Mach异常(内核层)和Unix信号(BSD层)两种底层机制。常见崩溃类型包括内存访问错误(SIGSEGV/SIGBUS)、OC异常(SIGABRT)、主动终止(SIGABRT)、非法指令(SIGILL)和算术异常(SIGFPE)等。异常传递流程为:硬件/内核错误→Mach异常→BSD信号→进程终止。通过理解这些机制可以更好地定位和解决崩溃问题。
原创
博文更新于 2025.12.04 ·
368 阅读 ·
6 点赞 ·
1 评论 ·
2 收藏
加载更多