参考链接
Pager
Pager为Kuikly页面的入口类,类似iOS UI中的VC, Pager也有类似VC的生命周期:
1 | // 已创建 |
Pager为Kuikly页面的入口类,类似iOS UI中的VC, Pager也有类似VC的生命周期:
1 | // 已创建 |
Kuikly是基于Kotlin MultiPlatform(KMP)构建的跨端开发框架, 支持Android、iOS、HarmonyOS和H5/小程序等多个平台, 据 PCG 开发团队的报告, Kuikly 可以提升团队 85%的开发效率.
这里记录一些我自己使用 Kuikly 遇到的一些坑, 希望后面能少点踩坑吧.
SDWebImage 是iOS 开发最流行的异步图片加载框架, 其中的缓存模块 SDImageCache
有一个很精巧的设计弱引用缓存, 源码参考
1 | @property (nonatomic, strong, nonnull) NSMapTable<KeyType, ObjectType> *weakCache; // strong-weak cache |
在我们的项目中引入了这个小修改, 整体的缓存命中率有1%左右的提升,
是否开启 | 内存缓存命中率 | 磁盘缓存命中率 | 下载命中率 |
---|---|---|---|
开启弱引用缓存 | 67.99% | 21.36% | 10.67% |
不开启弱引用缓存 | 66.76% | 21.99% | 11.25% |
在 GitHub 上确实有不少优秀且实用的 iOS 图片编辑相关的开源项目和 Demo。这些项目覆盖了基础编辑(裁剪、旋转、调整)、滤镜应用、涂鸦、贴纸添加、高级特效等功能。以下是一些值得关注的项目,适合学习和集成:
TOCropViewController
YPImagePicker
最近遇到一个问题, 需要定位到 TableView 的某一行, 历史代码是使用
1 | - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath; |
获取到对应的cell 在 TableView 上的位置, 然后再根据业务做了一些简单的计算, 最后使用
1 | - (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated; |
跳转到最终的位置.
但是由于这个业务比较复杂, 为了性能, 开启了预估行高(estimatedHeightForRowAtIndexPath
), 实际上, TableViewCell 的高度也根据业务各不一样, 预估值也与实际情况出入较大, 导致上面的 setContentOffset
跳到了不正确的行高.
知其然,然后知其所以然。本文主要是对学习赛博活佛Andrej Karpathy 7个小时教学视频的总结和拓展阅读笔记,推荐去看原视频,很精彩,链接在文末。从最常用的聊天应用过程分析开始,引入对话过程原理浅析,再到LLM训练过程;再结合当前主流的应用形式,在得知最新用法的同时,加深对LLM的理解;再谈谈AI的最新重大进展MCP;以及作为JAVAer,在Java领域有哪些前沿能力去整合LLM。
最后再罗列一下在公司内部一些AI平台、工具。最好的学习方法是带着问题去寻找答案,以费曼学习法为标准,产出可教学的资料。本文是个人所学梳理和所想记录,作为AI的小白,个人知识有限,难免有所错误、疏漏,请及时纠偏、不吝赐教,感谢。
最近做需求时候, 遇到一个后端联调问题, 需求是 后端A 把一个 json 转成 string 后放到 scheme 的payload
参数中, json 如下, text1
是一个字符串,
1 | { |
转换为字符串payload
后变成
1 | {\"text1\":\"今天是个好日子\",\"trackID1\":123456} |
scheme 大致如下:
1 | scheme://test/ui/func?p={"hintPayload":"{\"text1\":\"今天是个好日子\",\"trackID1\":123456}","param2":"9"} |
然后对 scheme 转义, 下发给客户端, 客户端在解析 scheme 后, 获取各个参数, 然后把payload
字符串给另一个业务后端B.
自测阶段没什么问题, 但是测试发现text1
中有换行符以及"
时候就不行了, 客户端问题就出在解析 scheme 时候, 会对参数做一次 string 转 json 处理, 这次处理失败了.
众所周知,微信在后台服务器不保存聊天记录,微信在移动客户端所有的聊天记录都存储在一个 SQLite 数据库中,一旦这个数据库损坏,将会丢失用户多年的聊天记录。而我们监控到现网的损坏率是0.02%,也就是每 1w 个用户就有 2 个会遇到数据库损坏。考虑到微信这么庞大的用户基数,这个损坏率就很严重了。更严重的是我们用的官方修复算法,修复成功率只有 30%。损坏率高,修复率低,这两个问题都需要我们着手解决。