2024 ,第 12 周,0318-0324
如释重负的一周,放松了很多。
极简日记 iOS
这周终于提交了一个 TF ,主要是围绕导出导出功能做优化:
- 修复了导出闪退
- 导出时可以看到图片总数
- 点击数据文件可以直接打开 App 进行导入
- 直接将导出的数据文件直接放到 App 的文件夹内,并可以一键打开文件夹
内存释放问题
从上周开始,我就一直在处理导出数据时爆内存的问题。数据比较少的时候还好,但是数据一多,特别是图片内容比较多的情况下,导出时必然会出现因为内存不足而闪退。
经过逐项方法的排查,最终确定问题就出现在读取图片数据上。我尝试了各种方法,减少 fetch limit ,加 autoreleasepool ,每次循环结束后清空数组,都不行。而且奇怪的是,即使退出导出页面了,被占用的内存也没有释放。
后来在请教了肘子哥之后,肘子哥立刻看出了问题所在,一针见血,一句代码就解决了我的问题。原来我之前使用的是全局的 Environment 托管上下文,改成临时的上下文就 ok 了。
这不是第一次肘子哥帮我解决 Core Data 方面的问题了,在此,赞美肘子哥!
Debug view
为了让用户帮我调试 App ,我写了个在非生产环境下才会出现的 debug view 。 正好 RevenueCat 也有一个 debug UI ,可以显示关于内购的相关信息,就也加进来了。Debug mode 下没有任何问题,但是 Release Mode 就无法编译,archive 也不行,找了半天原因,直到看到 RevenueCat 的文档里有这么一句:
Note: The debug UI won't compile for release builds, so you'll need to disable the behavior before archiving for release.
旁路由
买了大电视后,就特别想在电视上看 Netflix 。
最简单的方案应该是 Apple TV ,但是没舍得。前些天差点就买了一个软路由,但是看看价格还是舍不得。之前用 NAS 折腾过一次旁路由,失败了。又看了几个教程后发现我的 NAS 完全可以做旁路由,之前失败其实是搞错了方向。
周日花了一下午和一晚上终于搞定了 Nas+OpenWrt 。期间遇到了 OpenWrt 可以联网,但是连到 openwrt 的手机无法联网的问题。装了两个不同版本的 openwrt 的镜像,各种瞎鼓捣,又是 opkg ,又是配置接口和防火墙,还特意花钱注册了一个论坛账号。
搞定后发现,将电视的 IP 和 DNS 设置成旁路由还是比较麻烦,还不如直接用电脑或者手机投屏了……不过 OpenWrt 还是有很多可玩性的,有待以后慢慢探索了。
认真减肥第三周
本周体重变化不大,但是有新突破,突破了 190 斤,最低 189.7 斤。
有两天的晚饭吃得比较晚,因为特别饿吃得还比较多,万幸没有涨称。
健身+游泳
这周只去了两次健身房,周二练背,周五练胸。
泳池终于重新开放了,去年买的游泳三件套终于开封了,去游了 30 分钟。
不服不行,年龄越大,身体恢复就越慢,健身后三天酸痛都没有丝毫减轻。
杂事
- 周五的时候清空了 Boss 给的任务列表,度过了一个轻松无压力的周末
- 买了个 69.8 的联想夹耳式耳机,真是一分钱一分货啊,包装和做工都非常差,到手后试听了 1 小时果断退货了
- 花了一下午折腾在本地用 act 执行 GitHub action ,失败
- 继续上周的 SwiftData 学习,这周看完了 Stewart Lynch 的这个系列视频
- 看完了网飞版的《三体》,没想到我的时间线上对这个剧评价的两极分化如此严重。我看过原著,也看过腾讯版,我个人倒是觉得网飞版还不错,可以打四星
- 采用一种新的番茄工作法,写 25 分钟代码,玩一局 Brotato
