如释重负的一周,放松了很多。
这周终于提交了一个 TF,主要是围绕导出导出功能做优化:
从上周开始,我就一直在处理导出数据时爆内存的问题。数据比较少的时候还好,但是数据一多,特别是图片内容比较多的情况下,导出时必然会出现因为内存不足而闪退。
经过逐项方法的排查,最终确定问题就出现在读取图片数据上。我尝试了各种方法,减少 fetch limit,加 autoreleasepool,每次循环结束后清空数组,都不行。而且奇怪的是,即使退出导出页面了,被占用的内存也没有释放。
后来在请教了肘子哥之后,肘子哥立刻看出了问题所在,一针见血,一句代码就解决了我的问题。原来我之前使用的是全局的 Environment 托管上下文,改成临时的上下文就 ok 了。
这不是第一次肘子哥帮我解决 Core Data 方面的问题了,在此,赞美肘子哥!
为了让用户帮我调试 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 分钟。
不服不行,年龄越大,身体恢复就越慢,健身后三天酸痛都没有丝毫减轻。