iOS way to explore https:https://cdn.v2ex.com/navatar/069d/3bb0/580_normal.png?m=1751415489 https:https://cdn.v2ex.com/navatar/069d/3bb0/580_large.png?m=1751415489 2025-10-07T06:28:07Z Copyright © 2010-2018, V2EX 逆向分析 CoreText 中的字体级联/Font Fallback 机制 tag:www.v2ex.com,2025-10-07:/t/1163591 2025-10-07T03:40:44Z 2025-10-07T06:28:07Z HusterYP member/HusterYP 最近在研究自定义文字排版引擎的原理,其中一个模块是字体 Fallback/字体级联,逆向分析了下( macOS/iOS ) CoreText 中的字体级联机制:CTFontCopyDefaultCascadeListForLanguages

欢迎围观: https://mp.weixin.qq.com/s/EpaNjLcG6DZBc128A2gdIQ

]]> iOS 26 左划返回手势和照片选择器中的滑动选择照片冲突。 tag:www.v2ex.com,2025-10-06:/t/1163557 2025-10-06T15:22:46Z 2025-10-07T07:39:13Z Danswerme member/Danswerme 在 App 中通过 iOS 自带的照片选择器选择照片,点击进入某个相册,从左往右 滑动选择照片时会触发返回动作,只能从右往左进行滑动选择。

]]>
升级 ios26.0.1 后自带输入法模糊音不好使了 tag:www.v2ex.com,2025-10-06:/t/1163486 2025-10-06T03:02:50Z 2025-10-05T19:02:50Z busier member/busier 如题 你们有这个情况吗

表现为模糊音勾上后 在返回去看 勾都被取消了

只好装 gboard 代替了

]]>
ios26 的 bug 么? sim 卡要重新解锁。 tag:www.v2ex.com,2025-10-04:/t/1163386 2025-10-04T22:38:05Z 2025-10-06T10:12:10Z xtx member/xtx 現在有可用的去知乎評論里的廣告插件、腳本沒啊,以前的都不起作用了 tag:www.v2ex.com,2025-10-01:/t/1163049 2025-10-01T07:38:30Z 2025-10-01T14:22:21Z vairocana member/vairocana 如何删掉设置中的 "现有 iOS XX.X 可用"? tag:www.v2ex.com,2025-09-30:/t/1162873 2025-09-30T04:49:52Z 2025-09-30T06:45:55Z Damn member/Damn

有 trollstore 和 filza 。 ]]>
ios26 输入密码的界面比例对吗? tag:www.v2ex.com,2025-09-30:/t/1162861 2025-09-30T03:44:11Z 2025-09-30T01:44:11Z asd103 member/asd103
]]>
ios 审核界面截图尺寸怎么那么迷呢 tag:www.v2ex.com,2025-09-29:/t/1162561 2025-09-29T02:27:54Z 2025-09-29T06:00:29Z ckwilling member/ckwilling ios app 审核截图一直都很迷惑

1. 显示 6.5 英寸, 却要求 6.9 英寸

界面截图

2. 点了 6.9 英寸的编辑, 却要求的 6.5 英寸的截图

界面截图

]]>
iOS 用第三方输入法,很多地方输入框高度会乱飞是什么原因 tag:www.v2ex.com,2025-09-28:/t/1162402 2025-09-28T07:10:06Z 2025-09-28T11:13:17Z noahhhh member/noahhhh 如图,这是系统 bug 还是输入法问题。原生输入法词库太弱,用了几个第三方输入法都是这个问题。

]]>
升级 ios26 后你们的 iringo 天气功能还正常吗 tag:www.v2ex.com,2025-09-28:/t/1162289 2025-09-28T01:51:22Z 2025-09-27T09:51:22Z ikn0wzxc member/ikn0wzxc 我之前是 ios18+loon+iringo 的配置,可以正常工作,现在升级到 ios26 后就失效了,有一样的吗

]]>
圈 X 上 B 站去广告的脚本好像用不了了,还有什么别的法子吗? tag:www.v2ex.com,2025-09-27:/t/1162211 2025-09-27T10:12:05Z 2025-09-29T01:15:11Z Ethan24067 member/Ethan24067
用的这个脚本: https://github.com/ddgksf2013/Rewrite/raw/master/AdBlock/BilibiliAds.conf

]]>
iOS26.1 beta 更新后蜂窝网络信号变差,微信接电话免提打不开,朋友圈、抖音小红书等界面刷新不出来 tag:www.v2ex.com,2025-09-26:/t/1161929 2025-09-26T02:07:34Z 2025-09-26T02:07:34Z sexyback member/sexyback 我的手机是 15PM ,昨天在站里看到有人说升级到 26.1 会流畅一些,顺手就升级了,升级完开机之后在外面使用流量的时候很多东西都刷不出来,有没有遇到跟我一样情况的 v 友

]]>
后续: ios26 正式版发布了 tag:www.v2ex.com,2025-09-26:/t/1161911 2025-09-26T01:18:20Z 2025-09-27T04:58:43Z lonccc member/lonccc 前序 t/1143639

ios26 正式版发布了,前几天已经升级,个人感觉比刚开始的版本还是流畅一点,但是卡顿掉帧,进入桌面图标空白等性能问题依然存在,特别是肉眼可见的掉帧。不知道当初喷我的人有没有同感。当时我的看法如下,我觉得升级到正式版之后依旧成立

我反对的是为了过度(且效果并不好)的 ui 动画消耗太多硬件资源,导致系统卡顿。这大概率不会因为 public beta 或者正式版就完全解决。在我看来这种做法或者趋势本身就是有问题的。

今天不骂苹果了,上次被喷惨了怕了。但是苹果的阳谋是成功的,现在在犹豫要不年年焕新换一个 17 或者 17pro ,应该不会这么卡了吧...

]]>
iPhone16pro 升级 iOS26 后, NFC 无法使用,咋弄? tag:www.v2ex.com,2025-09-24:/t/1161586 2025-09-24T09:32:51Z 2025-09-24T11:38:49Z MadAlvin member/MadAlvin
恢复完后,NFC 无法打开了,设置里显示灰色,没办法打开。钱包里所有卡都没有了,点击新增无限转圈圈。

系统更新也没办法通过手机正常更新了,只能通过电脑下载固件后更新才可以。

大家有没有遇到过类似情况?求教🙏。 ]]>
iOS 26.1 测试版谨慎更新 微信语音/视频 抽风 tag:www.v2ex.com,2025-09-24:/t/1161451 2025-09-24T02:40:36Z 2025-09-25T16:38:50Z Lentin member/Lentin 微信视频不知道咋解决


另外不要尝试从 iOS26.1 降级到 iOS26 ,直接报错误代码 68 ,重启后自动进入 DFU 模式无法开机,需要用爱思助手重刷 26.1 才行
]]>
ios safari 解除帧率限制 tag:www.v2ex.com,2025-09-23:/t/1161329 2025-09-23T10:00:12Z 2025-09-23T12:05:00Z paperseller member/paperseller 系统设置-app-safari-高级-功能开关-关闭 prefer page rendering updates near 60fps

据 ios18 以来的经验,此开关会在某些系统更新后被重置。当 v 站又上下滑动卡卡的就要去看看是否被重置了

]]>
iPhone / iPad 使用 shadowrocket 会影响 B 站 app 网速 tag:www.v2ex.com,2025-09-20:/t/1160689 2025-09-20T05:32:10Z 2025-09-20T12:00:55Z Benjamin9544 member/Benjamin9544 在启动 Shadowrocket 后,如果断开 Shadowrocket ,b 站 app 会没速度,大概 50KB/s ,如果此刻重连 Shadowrocket 立刻速度恢复。使用的是配置模式,不是全局。(不是没网而是速度提不上去)
或者强制关闭然后重新打开 B 站速度恢复。
似乎 Shadowrocket 断联后仍然影响其他 app ,暂时只发现 B 站有这个问题,其他 app 比如微信或者小红书没发现。 ]]>
使用 workout buddy 竟然还需要 iPhone tag:www.v2ex.com,2025-09-19:/t/1160485 2025-09-19T05:56:46Z 2025-09-22T18:16:26Z tycde member/tycde 最近在跑步,想试试新出的那个 workout buddy 到底看看是怎么鼓励我

网上开启教程很少,折腾了半天才发现需要更改机器语言和 Siri 语言到英语,当然 ai 是必须要打开的,开启新的 workout 就出现提示了

今天兴冲冲的准备跑步试试这个 feature ,结果 apple watch 提示我“需要连接 iPhone 才能使用”…虽然我懂这个是基于 ai 的需要手机算力,但是谁户外跑步带手机啊。可能更适合跑步机吧,但是跑步机也不需要它鼓励我吧。

]]>
13PM 有必要升到 18 吗? tag:www.v2ex.com,2025-09-18:/t/1160197 2025-09-18T06:11:20Z 2025-09-23T18:44:15Z Ansen member/Ansen
还是说就在 16.7.2 上养老得了?

主要是现在偶尔会遇到安装某个 APP 提示不支持 iOS 16 的问题 ]]>
为什么 YouTube 网页版画质只有 240p/360p tag:www.v2ex.com,2025-09-18:/t/1160177 2025-09-18T04:44:46Z 2025-09-18T06:56:19Z vtoexwj member/vtoexwj iOS 版本:16.6 试了许多浏览器都是低画质,Gear 能切换到 1080p 。 另外新设备 iOS18.6 Safari 浏览器是正常的,其他浏览器也是只有低画质

]]>
升级 iOS26 以后,第三方无线充电不能用了 tag:www.v2ex.com,2025-09-17:/t/1159848 2025-09-17T02:41:39Z 2025-09-17T04:28:31Z xiaohan8611 member/xiaohan8611 自从升级了 iOS26 ,之前用的小米的无线充电就不能用了

]]>
iOS26 第一次打开网页首页有点卡,打开后访问二级页面就没问题了 tag:www.v2ex.com,2025-09-17:/t/1159823 2025-09-17T01:49:00Z 2025-09-17T02:28:03Z revival83 member/revival83 升级了 iOS 26 之后,桌面的 APP 和文件夹名称的字体颜色都变成了黑色 tag:www.v2ex.com,2025-09-17:/t/1159820 2025-09-17T01:41:12Z 2025-09-17T02:30:18Z windstill member/windstill 请问各位 V 友,有什么方法改成原来的白色字体吗?

试了下切换“显示与亮度”里的“浅色”、“深色”模式也不行,不管哪种模式,字体都是黑色。

问了 AI ,Google 了一遍,也没解决办法以及相似的问题。

]]>
ios26 太棒了 tag:www.v2ex.com,2025-09-16:/t/1159787 2025-09-16T23:15:49Z 2025-09-17T17:44:07Z qdwang member/qdwang 苹果终于做人了

ios26 又流畅顺滑,又不费电

我估计是 UI 代码彻底重构了的原因

UI 屎山代码从 ios7 到 ios18 多少年了,越来越卡。

ios26 终于彻底重构了,感恩产品经理

]]>
更新 iOS26 之后 sim 卡坏掉了 tag:www.v2ex.com,2025-09-16:/t/1159581 2025-09-16T04:26:34Z 2025-09-16T04:44:33Z kizunai member/kizunai
反复重启+重置网络之后,其中一张卡恢复正常了,另一张还是没有信号。

把无信号的 sim 卡放到其他手机上还是没信号,显示仅可紧急通话

把别的手机卡插到这个手机上,一切正常

看样子是其中一张 sim 卡坏掉了,只能去营业厅换卡了 ]]>
iOS26 那个预览 app 要接受打开么? tag:www.v2ex.com,2025-09-15:/t/1159479 2025-09-15T23:58:20Z 2025-09-16T02:46:20Z revival83 member/revival83 iOS26 通知栏下滑行程好长 tag:www.v2ex.com,2025-09-15:/t/1159473 2025-09-15T18:53:34Z 2025-09-15T19:54:59Z mangmaimu member/mangmaimu 以前左手大拇指一挥就下来,按以前用法半天滑不下来,真难用,估计也不会改了,动画倒是挺流畅的 ]]> 请问 Apple ID 港区是否用云上贵州,国内 app 广告肆无忌惮,想找个区下载国内 app 又无广告的 tag:www.v2ex.com,2025-09-14:/t/1159167 2025-09-14T17:40:05Z 2025-09-15T08:19:30Z JohnsonYiu member/JohnsonYiu
真的被国内 app 大环境恶心到顶点了,不知道现在还有什么简单粗暴的方法没,本人用的是 14PM 机子。

烦请兄弟们赐教 ]]>
iOS 端提示要求同意云上贵州协议,但是不影响继续使用,是什么情况? tag:www.v2ex.com,2025-09-14:/t/1159148 2025-09-14T14:04:29Z 2025-09-14T16:05:53Z MoRanjiang member/MoRanjiang

最近几个月一直在不停地弹通知,叫我同意和云上贵州相关的协议。但是不同意也能正常使用,网页端检查了 https://account.apple.com/account/manage/section/information 确认自己不在国区,看了 https://www.icloud.com/ 也找不到云上贵州字样。

手机为美版,账号为台区。

]]>
iPadOS 26 游戏性能相比 iPadOS17 有下降吗? tag:www.v2ex.com,2025-09-14:/t/1159109 2025-09-14T09:58:47Z 2025-09-17T12:34:08Z drymonfidelia member/drymonfidelia
这才买了一年多,不想换
不知道升 iPadOS26 会不会更卡,只是想体验一下新 UI ,虽然说我觉得很难看,但只是看别人评测视频后的感想,还没亲自体验过。手机不敢升,按 Apple 现在的软件质量鬼知道会出多离谱的 bug ]]>
更新了 iOS26 PB, 但是丢了不知道多少短信 tag:www.v2ex.com,2025-09-10:/t/1158401 2025-09-10T14:34:54Z 2025-09-10T15:34:54Z kome member/kome RT, 更新前做了整鸡备份, 没啥重要短信, 现在一直在显示同步 iCloud, 不知道会不会真丢.
短信验证码填充好像有问题, 登录游戏, 无法显示验证码, 更无法填充, 只能是划出去看短信.
其他好像没看到什么问题, 再看吧, 才更新半小时.

]]>
AI 辅助编程实战:从零到一开发 Swift 性能框架的经验分享 tag:www.v2ex.com,2025-09-08:/t/1157872 2025-09-08T13:39:46Z 2025-09-08T15:38:06Z Taoist member/Taoist [实验] 此文章由 Cursor 根据项目翻阅项目代码和文档后, 加上本人的一些信息输入自动生成, 我只改了几处明显的错误, 每处不超过一行

前言

作为一名 iOS 开发者,我一直被两个问题困扰:重复的网络请求浪费资源,缓存策略难以精确控制。最近两个月,我决定用 AI 辅助编程的方式来彻底解决这些问题,最终开发出了一个名为Monstra的 Swift 性能框架。

整个过程让我重新思考了"编程"这个概念,也让我对 AI 协作开发有了全新的认识。今天想分享一下这次 AI 辅助开发的完整经历,包括遇到的坑、解决方案,以及一些意外的收获。

项目背景:那些让人头疼的性能问题

问题一:重复网络请求的噩梦

相信很多 iOS 开发者都遇到过这种情况:

// 场景:多个 ViewController 同时需要用户数据 class UserProfileViewController { func viewDidLoad() { API.fetchUserProfile { result in // 处理结果 } } } class SettingsViewController { func viewDidLoad() { API.fetchUserProfile { result in // 重复请求! // 处理结果 } } } class NotificationViewController { func viewDidLoad() { API.fetchUserProfile { result in // 又一个重复请求! // 处理结果 } } } 

结果:3 个页面同时加载,发出 3 个完全相同的网络请求。浪费流量,增加服务器负担,用户体验还差。

问题二:缓存策略的复杂性

iOS 开发中的缓存问题同样让人头疼:

决定:用 AI 协作解决这些问题

面对这些痛点,我决定开发一个专门的框架来彻底解决这些问题。但这次,我想尝试一种全新的开发模式:AI 辅助编程。

AI 协作开发的分工策略

经过思考,我制定了一个明确的分工策略:

我负责的部分(核心创造)

AI 负责的部分(辅助优化)

这样分工的好处是:我专注于最需要创造性思维的部分,AI 帮我处理那些重复性、规范性的工作。

框架设计:两大核心组件

基于对问题的分析,我设计了两个核心组件:

1. TaskManager:智能任务执行管理器

MonoTask - 单任务执行合并

// 创建一个处理用户资料获取的任务 let userProfileTask = MonoTask<UserProfile>( resultExpireDuration: 300.0 // 5 分钟缓存 ) { callback in // 实际的网络请求逻辑 API.fetchUserProfile { result in callback(result) } } // 多个地方同时调用,只会执行一次网络请求 Task { let profile1 = await userProfileTask.asyncExecute() // 发起网络请求 let profile2 = await userProfileTask.asyncExecute() // 返回缓存结果 let profile3 = await userProfileTask.asyncExecute() // 返回缓存结果 } 

KVLightTasksManager - 轻量级批处理

// 批量获取用户帖子,自动合并重复 ID let postManager = KVLightTasksManager<String, Post>( config: .init( dataProvider: .asyncMultiprovide(maximumBatchCount: 10) { postIDs in return try await API.fetchPosts(ids: postIDs) } ) ) // 三个 ViewModel 请求重叠的帖子 ID ,自动批处理 postManager.fetch(keys: ["101", "102", "103"]) { id, result in // 处理单个帖子结果 } 

KVHeavyTasksManager - 重型任务管理

// 大文件下载,支持进度跟踪和取消 let downloadManager = KVHeavyTasksManager<URL, Data, Progress, CustomProvider>( config: .init( maxNumberOfRunningTasks: 2, // 最多同时 2 个下载 maxNumberOfQueueingTasks: 64 ) ) // 多个下载请求,自动队列管理 downloadManager.fetch( key: fileURL, customEventObserver: { progress in print("下载进度: \(progress.fractionCompleted)") }, result: { result in // 处理下载结果 } ) 

2. MemoryCache:智能内存缓存系统

let cache = MemoryCache<String, UIImage>( configuration: .init( // 内存限制 memoryUsageLimitation: .init(capacity: 1000, memory: 500), // 500MB // TTL 配置 defaultTTL: 3600.0, // 正常数据 1 小时过期 defaultTTLForNullElement: 300.0, // 空值 5 分钟过期 // 雪崩保护:随机化过期时间 ttlRandomizationRange: 60.0, // ±60 秒随机 // 内存成本计算 costProvider: { image in guard let cgImage = image.cgImage else { return 0 } return cgImage.bytesPerRow * cgImage.height } ) ) // 优先级缓存 cache.set(element: profileImage, for: "user-123", priority: 10.0) // 高优先级 cache.set(element: thumbnail, for: "thumb-456", priority: 1.0) // 低优先级 cache.set(element: nil, for: "missing-789") // 缓存"未找到" // 智能获取 switch cache.getElement(for: "user-123") { case .hitNonNullElement(let image): // 找到有效图片 displayImage(image) case .hitNullElement: // 找到"未找到"记录 showPlaceholder() case .miss: // 缓存未命中 loadImageFromNetwork() case .invalidKey: // 键值验证失败 handleInvalidKey() } 

AI 辅助开发的实战经验

1. Cursor 的惊人表现

使用 Cursor 进行 AI 辅助开发最大的感受是:AI 比我想象的更"理解"代码

代码审查能力

当我写完核心逻辑后,Cursor 会提出改进建议:

我的原始代码:

func removeExpiredElements() { for key in keys { if isExpired(key) { remove(key) } } } 

Cursor 的优化建议:

func removeExpiredElements() -> Int { let keysToRemove = keys.filter { isExpired($0) } keysToRemove.forEach { remove($0) } return keysToRemove.count // 返回清理数量,便于监控 } 

这种优化不仅提高了性能,还增加了实用功能,完全是我没想到的角度。

单元测试的全面性

最让我惊讶的是 AI 生成的单元测试。我只写了基本的功能测试,但 AI 补充的测试用例覆盖了很多我忽略的边界情况:

// AI 生成的边界测试 func testConcurrentAccessWithSameKey() { // 测试多线程同时访问同一个 key } func testMemoryPressureEviction() { // 测试内存压力下的驱逐策略 } func testTTLRandomizationPreventsStampede() { // 测试 TTL 随机化防止缓存雪崩 } func testNullValueCaching() { // 测试空值缓存的各种场景 } 

2. 不同 AI 模型的"个性"差异

在开发过程中,我尝试了多个 AI 模型,发现它们确实有不同的"专长":

GPT-4 的特点:

Claude 的特点:

Cursor 的特点:

3. AI 协作的最佳实践

经过两周的深度协作,我总结出几个关键的协作技巧:

3.1 精确的需求描述

❌ 模糊的描述:

"我写了一个缓存, 帮我 review 一下"

✅ 精确的描述:

"我写了一个线程安全的内存缓存,支持 TTL 过期,优先级 LRU 淘汰策略,能够缓存 nil 值,防止缓存雪崩,并且可以设置内存使用上限, 请帮我 review 一下代码逻辑正确性 public API 的规范性以及合理性"

3.2 迭代式优化

不要指望 AI 一次性生成完美代码,而是通过多轮对话逐步优化:

第 1 轮:实现基本功能 第 2 轮:添加异常处理 第 3 轮:优化性能 第 4 轮:完善文档 第 5 轮:添加单元测试 

3.3 善用 AI 的不同视角

对于关键代码,我会让不同的 AI 模型都 review 一遍,综合它们的建议:

开发成果:5 个实战示例

为了验证框架的实用性,我开发了 5 个真实场景的示例:

1. Module Initialization - 模块初始化

// 应用启动时的配置加载,支持重试和永久缓存 let cOnfigManager= AppConfigurationManager() configManager.initializeModule { result in switch result { case .success: print("配置加载成功") case .failure(let error): print("配置加载失败: \(error)") } } 

2. User Profile Manager - 用户资料管理

// 单用户资料管理,支持 TTL 刷新和强制更新 let profileManager = UserProfileManager() profileManager.setUser(firstName: "Alice") { result in // 设置完成后自动刷新缓存 } 

3. Object Fetch Task - 批量对象获取

// 三个 ViewModel 同时请求重叠的帖子 ID ,自动批处理 let repository = PostRepository() repository.getPostsBatch(ids: ["101", "102", "103"]) { results in // 批量处理结果 } 

4. Large File Download Management - 大文件下载

// Alamofire + AFNetworking 双 Provider 支持,断点续传 let downloadManager = AlamofireManager(config: .init()) let result = await downloadManager.asyncFetch( key: fileURL, customEventObserver: { progress in updateProgressBar(progress.fractionCompleted) } ) 

5. Large File Unzip - 大文件解压

// ZIPFoundation 集成,进度跟踪 let unzipManager = UnzipManager(config: .init()) unzipManager.fetch( key: zipFileURL, customEventObserver: { event in switch event { case .progress(let percent): print("解压进度: \(percent * 100)%") } } ) 

性能测试结果

执行合并效果测试

// 10 个并发请求测试 let startTime = CFAbsoluteTimeGetCurrent() await withTaskGroup(of: Void.self) { group in for i in 0..<10 { group.addTask { let result = await userTask.asyncExecute() print("Task \(i) completed: \(result)") } } } let duration = CFAbsoluteTimeGetCurrent() - startTime print("总耗时: \(duration)s, 网络请求次数: 1") 

结果:10 个并发请求,只发出 1 个网络请求,所有回调都收到相同结果。

缓存性能测试

// 缓存命中率测试 let cache = MemoryCache<String, Data>(capacity: 1000) // 写入 10000 个条目 for i in 0..<10000 { cache.set(element: randomData(), for: "key\(i)") } // 随机访问测试 var hitCount = 0 for _ in 0..<1000 { let key = "key\(Int.random(in: 0..<10000))" if case .hitNOnNullElement= cache.getElement(for: key) { hitCount += 1 } } print("缓存命中率: \(Double(hitCount) / 1000.0)") 

AI 协作开发的思考与展望

对程序员职业的影响

通过这次深度的 AI 协作开发经历,我对程序员这个职业有了新的思考:

什么不会被 AI 取代:

  1. 架构设计能力:整体思维,权衡取舍
  2. 业务理解能力:理解用户需求,设计合适方案
  3. 创新思维:发现新问题,提出新解决方案
  4. 质量把控:判断代码质量,做技术决策

什么会被 AI 大幅提升:

  1. 编码效率:重复性代码生成
  2. 测试覆盖率:边界用例发现
  3. 文档质量:规范化文档生成
  4. 代码质量:最佳实践建议

未来的编程模式

我认为未来的编程将是**"人机协作"**模式:

程序员 = 产品经理 + 架构师 + 质量把控者 AI = 编码助手 + 测试工程师 + 文档工程师 

程序员的价值将更多体现在创造性思维判断决策上,而不是纯粹的编码技能。

对新手程序员的建议

  1. 尽早开始 AI 协作:不要等技术成熟,现在就开始学习
  2. 关注核心能力:专注算法、架构、业务理解等 AI 难以取代的能力
  3. 培养 AI 协作技能:学会如何与 AI 高效沟通,这将成为核心竞争力

项目开源与社区反馈

这个项目现在已经在 GitHub 开源:**github.com/yangchenlarkin/Monstra**

技术特性

安装使用

Swift Package Manager:

dependencies: [ .package(url: "https://github.com/yangchenlarkin/Monstra.git", from: "0.1.0") ] 

CocoaPods:

pod 'Monstra', '~> 0.1.0' 

总结

这次 AI 辅助开发的经历让我深刻体会到:AI 不是要取代程序员,而是要让程序员变得更强大

通过合理的分工协作,我们可以:

如果你还没有开始尝试 AI 辅助编程,我强烈建议你现在就开始。这不仅仅是一个工具,更是编程思维的升级。

相关链接


关于作者:iOS 开发工程师,专注于移动端性能优化和架构设计。这是我第一次深度尝试 AI 辅助开发,也是第一个开源项目。如果这个项目对你有帮助,欢迎在 GitHub 上给个⭐️,也欢迎提出改进建议!

如果你有任何问题或想要交流 AI 辅助开发的经验,欢迎在评论区讨论,或者在 GitHub 上提 Issue 。让我们一起探索编程的未来!

作者批

上面的内容都是 Cursor 写的(甩锅 ing), 我这里补充几点:

  1. 任务合并和缓存, 在前端(React)框架中比较常见, 我的灵感也是来自于前端
  2. 文中的各个大模型的特点, 我并没有验证真伪, 这部分大家看个乐呵就好了😂. 不过我在写测试用例的过程中, 我确实真对同一个类, 让不同的大模型给我写测试用例, 然后让 Claude 给我整理 case 、去除重复 case 、规范命名和注释等. 然后我在去阅读这些 case, 发现有遗漏的 case 再让 AI 补充.
  3. 第三方库“要么功能不全,要么太重太复杂”, 这个有失偏颇, 我觉得大部分库还是功能不全, 我这个库才是太重太复杂🤦 大家用的时候根据实际项目各取所需即可, 简单和全面在一定程度上本就是需要做取舍的.
]]>
app 去开屏广告是不是也会失效? tag:www.v2ex.com,2025-08-31:/t/1156033 2025-08-31T03:01:25Z 2025-08-31T06:01:25Z razios member/razios t/1138108
发现有些 app 貌似不行,小火箭现在有什么终极方案吗? ]]>
Quantumult X 在 iOS 26 Developer Beta 8 中是否无法用 doh-server 解析节点域名了? tag:www.v2ex.com,2025-08-29:/t/1155764 2025-08-29T05:35:28Z 2025-08-28T21:35:28Z zli member/zli
例如:
doh-server = https://223.6.6.6/dns-query, https://223.5.5.5/dns-query, https://1.12.12.12/dns-query, https://120.53.53.53/dns-query

升级到 iOS 26 Developer Beta 8 后,无论是 Wi-Fi 还是 Cellular ,节点测速全都是 x 。

修改成普通的 server 就能正常解析了。

原本以为问题这就解决了,然后发现[policy]自动切换到负载均衡策略后就无法联网,只能手动指定一个节点单独使用。

iPadOS 26 Developer Beta 8 也存在同样的问题。

不知道这个是 Apple 的 feature 还是 bug ,但据说大概率没有 Developer Beta 9 了,要改的话也需要 Quantumult X 这边适配,有没有遇到同样问题的? ]]>
苹果播客自动下载的逻辑好奇怪 tag:www.v2ex.com,2025-08-28:/t/1155409 2025-08-28T00:25:00Z 2025-08-28T04:11:39Z rick13 member/rick13 我设置了自动下载最新的五集播客,结果在订阅新频道的时候有的频道会自动下载一个,有的自动下载三个,joe rogan 更是一集都不下
这是 bug 还是什么逻辑我没弄明白? ios26 最新 db ,wifi 不插电且满电的情况下

]]>
需要 iOS 开发,能解决上架问题优先 tag:www.v2ex.com,2025-08-27:/t/1155278 2025-08-27T06:45:48Z 2025-08-27T08:36:25Z ttwe member/ttwe 岗位职责 ===================== 1.完成 iOS 平台相关产品的设计和开发;负责 iOS 工具应用程序开发。 2.配合产品经理和 UI 设计完成高质量的应用程序。 3.app 上架,解决各种上架过程中的问题。

岗位要求: ===================== 1 、5 年以上 iOS APP 开发经验,计算机相关专业本科以上学历。 2 、熟悉 iOS App 开发技术,熟练使用 iOS 开发工具及测试工具。 3 、系统掌握网络、多线编程等基础知识。 4 、精通 Objective-C/Swift 开发经验或有 Flutter 开发项目经验。 5 、积极乐观,责任心强,做事认真细致,有良好的团队沟通协作能力。 6 、热爱移动产品研发,学习能力强,有较强的好奇心、求知欲和进取心,能关注和学习行业内最新的移动开发技术。 7 、熟悉 App Store 上架规则,懂混淆技术,有解决 4.3 上架 App Store 产品者优先。 有意者请发简历到 hr.celeste.seamobi@gmail.com 谢谢

]]>
iOS network library 崩溃 tag:www.v2ex.com,2025-08-26:/t/1155126 2025-08-26T13:37:40Z 2025-08-26T14:15:25Z holy_sin member/holy_sin nw_channel_remove_input_handler

最近这个崩溃出现概率很高,有大佬们遇到过吗。版本主要集中在 iOS 18 。有大佬解决过吗,求助哇。

]]>
苹果系统天气预报是不是不准的? tag:www.v2ex.com,2025-08-26:/t/1154925 2025-08-26T01:44:29Z 2025-08-30T06:20:37Z tog member/tog 不止一次了,昨天上海暴雨,我天气预报上显示的晴天。

]]>
microsoft edge iOS 新增本地扩展支持 tag:www.v2ex.com,2025-08-21:/t/1153944 2025-08-21T05:26:41Z 2025-08-21T16:44:27Z a158212892 member/a158212892 microsoft edge iOS 新增本地扩展安装,不过兼容性貌似很差,

]]>
今天晚上或者明天有 iOSBeta7 吗? tag:www.v2ex.com,2025-08-18:/t/1153292 2025-08-18T12:18:03Z 2025-08-18T15:29:04Z yangyi0109 member/yangyi0109 为什么除了 IOS 官方的 APP,其他 APP 几乎很少看到使用原生控件 tag:www.v2ex.com,2025-08-18:/t/1153102 2025-08-18T03:12:15Z 2025-08-18T21:18:05Z bli22ard member/bli22ard 为什么除了 IOS 官方的 APP ,其他 APP 几乎很少看到使用原生控件

如果是因为“更好看”或者“显得高级”,那 iOS 自带的相册、App Store 、设置这些系统应用,其实大量界面也都是原生控件。像个人中心、设置列表这类界面,用原生控件看起来并不会显得 low 或者不高级。

大家觉得,一般 APP 更少用原生控件的主要原因是什么?

]]>
[内推] [杭州] IOS 养老部门内推 tag:www.v2ex.com,2025-08-14:/t/1152425 2025-08-14T09:52:55Z 2025-08-14T20:29:18Z lpldplws member/lpldplws Tips: 安卓已经内推好几个面试流程中的同学了,大佬们感兴趣欢迎来撩。

全流程帮内推,跟进进度,有意向可以加我好友发简历。

Base 杭州 西湖区黄龙国际中心

薪资 20-40k ,16 薪,双休六险一金,12%公积金,1-5 年经验,基本不加班,福利待遇好对标大厂。

iOS 最好有 swift 经验 有大厂经验最好,没有大厂经验学历一定要卡 985/头部 211

欢迎大佬们 wx:Laplan_d


要求如下:

IOS:

负责 iOS 平台应用/游戏研发: 负责软件质量,修正 Bug ,提出优化方案并实施 : 负责设计和完善产品技术架构; 负责跟进移动平台终端技术,了解相关行业的行业动态,并推进在产品中的应用: 负责调研竞品技术方案,参与产品方向讨论。 任职要求

计算机或相关专业全日制本科以上学历,2 年以上 iOS 开发经验; 熟悉 iOS 平台特性,熟练使用常见第三方库: 有良好的编码习惯,能够熟练的使用 OC 、Swift 语言; 具备扎实的面向对象思想、对常见设计模式有深入了解; 有网络开发经验;熟悉多线程,数据库 对软件性能优化有一定的经验: 具备较强的设计能力、沟通能力: 英语良好,具有一定的英文文档阅读能力

]]>
ios26 升级后玩游戏扬声器音效问题 tag:www.v2ex.com,2025-08-14:/t/1152279 2025-08-14T02:03:53Z 2025-08-14T08:53:27Z Soulboy member/Soulboy iPhone14 升级到 26 后,玩 LOL 手游时,扬声器发出来的声音不对,声音很空、很杂,没法形容

切一下后台再回去声音能正常 1 秒钟,接着又变成像是只从底部扬声器出声的效果,玩游戏听的很难受

有没与同样遇到这个问题的

]]>
有跟我一样 Safari 的“欺骗性网站警告”不知道什么时间自动打开的吗 tag:www.v2ex.com,2025-08-12:/t/1151966 2025-08-12T23:47:20Z 2025-08-12T15:47:20Z busier member/busier icloud 关闭 不同步不备份任何数据

国行版 美版 都有这个现象

我非常明确 我是关闭“欺骗性网站警告”的开关

不知道过了几个月 不知道什么时候 一看设置又自动打开了

不确定是不是与苹果升级 ios 有关

有遇到这样的情况吗

]]>
iOS18.5 到 iOS18.6 一直有个问题 tag:www.v2ex.com,2025-08-09:/t/1151219 2025-08-09T07:16:13Z 2025-08-14T12:15:32Z jackchiu member/jackchiu Wi-Fi 一天无数次断开重连,难道是我个人问题?

]]>
iOS 上的米家自动化替代方案:用快捷指令 + 中转服务实现设备控制 tag:www.v2ex.com,2025-08-07:/t/1150813 2025-08-07T12:40:29Z 2025-08-07T20:20:20Z 19888888888x member/19888888888x 背景与痛点

为此,我上班摸鱼写了一个 加密中转服务( Go 自托管 / Cloudflare Worker 两种版本)来代替米家 App 完成签名、Cookie 注入。快捷指令只需向中转服务发送一段 JSON ,就能在后台控制米家,包括设备控制和场景触发。


整体方案

  1. 扫码登录
    访问 /login/qrcode,用米家 App 扫码,获得
    userId / ssecurity (securityToken) / deviceId / serviceToken 四个关键参数。
  2. 快捷指令 POST
    向中转服务 POST 一段 JSON ,由服务器补齐签名后转发至 https://api.io.mi.com
  3. iOS 自动化触发
    无需米家常驻后台,快捷指令在「到达某地点 / 连接某 Wi-Fi 」等场景触发后即刻发请求。

示例请求体:

{ "userId": "123456789", "serviceToken": "xxx", "deviceId": "abc123", "securityToken": "Q0eQ7tKq...", // 即 ssecurity "data": { "did": "xxx", "method": "set_props", "params": [ ["power", 1] ] } } 

iOS 定位坐标系坑

因此直接填写 GCJ-02 坐标会出现数百米偏差,导致自动化难以触发。
解决办法:先用快捷指令读取 GCJ-02 → 在线或本地转换为 WGS-84 ,再把转换后的坐标写到自动化里。
我做了一个快捷指令转换示例:https://www.icloud.com/shortcuts/5161a59573f248399e58a8584eb93468


代码与部署

https://gist.github.com/Zayrick/62701850c833c4051356268fa9afc3ff 其中包含一个 sever.go ( Go 版本)和 worker.js ( Cloudflare Worker 版本)

部署详情参照 gist 中的 README.md


风险警告 ⚠️

风险 说明
账号安全 扫码登录使用真实米家账号,存在被封或 Cookie 泄露风险
网络安全 中转服务需走 HTTPS ,防止中间人窃听;同时禁止公网暴露调试接口
设备权限 serviceToken/ssecurity 拥有完整设备控制权限,请加密存储
隐私泄露 服务器可访问全部家庭与设备信息,建议专号 + 内网部署

参考资料

📚 常用米家 API

操作 请求方式
读取设备属性 POST https://api.io.mi.com/app/miotspec/prop/get
设置设备属性 POST https://api.io.mi.com/app/miotspec/prop/set
执行动作 POST https://api.io.mi.com/app/miotspec/action
获取设备列表 POST https://api.io.mi.com/app/home/home_device_list
获取家庭列表 POST https://api.io.mi.com/app/v2/homeroom/gethome_merged
获取场景列表 POST https://api.io.mi.com/app/appgateway/miot/appsceneservice/AppSceneService/GetSceneList

💡 设备控制 API 查这里:https://home.miot-spec.com

免责声明:自己玩可以,别滥用,风险自负 🫡

]]>
iPhonese2 代支持越狱吗?想弄一下 Frida 守护程序 hook app 是否支持? tag:www.v2ex.com,2025-08-06:/t/1150475 2025-08-06T11:47:01Z 2025-08-06T18:12:49Z walterggg member/walterggg iOS 淘宝主屏幕小组件黑边已经很久了,完全没人修。 tag:www.v2ex.com,2025-08-05:/t/1150225 2025-08-05T18:22:38Z 2025-08-05T02:22:38Z msdurex member/msdurex
https://i.imgur.com/a/2zi064S.jpg
如图所示大黑边


JD 京东倒是更新了 Widget ,感觉设计的也简洁好看一些。

https://i.imgur.com/a/F19wUze.jpg
京东全新小组件 ]]>
iPhone 怎么重置已经插入过的 SIM 卡,让机器将之识别为新插入? tag:www.v2ex.com,2025-08-05:/t/1150062 2025-08-05T05:01:03Z 2025-08-05T05:22:03Z 2232588429 member/2232588429 之前备忘录开启了 icloud 同步,现在想关掉提示会删除文件,有没有在关掉之前备份到本机的办法? tag:www.v2ex.com,2025-08-05:/t/1149948 2025-08-05T00:40:33Z 2025-08-05T00:57:23Z 2232588429 member/2232588429 没找到地方,请问有办法备份下来吗?

]]>
ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86