我只在APP里用到了LeanCloud的即时通讯、推送模块(用户系统、云存储等都没有用到),LCDate、LCDictionary均出现过EXC_BAD_ACCESS报错。初步猜想,是Swift 5.4更新导致的。
此外,即时通讯中,APP从后台切换回来,重新拉取最新的聊天列表,经常会有几秒延迟,体验不佳,有没有方法可以手动调用client重新连接的?这样是否可以提升WebSocket恢复连接的速度?
编译警告是 Swift 5.4 带来的,这些警告对于目前的使用没有任何影响。
EXC_BAD_ACCESS 一般是由多线程操作引发的数据竞争导致的。您的代码中的数据竞争应该是一直存在的,可能这次 Swift 的升级让您的错误被暴露的更明显了。另外,Swift SDK 的 Object 本身并不提供多线程安全保证,多线程下的操作需要您自行确保安全性。
EXC_BAD_ACCESS
您可以参考 Apple 的官方教程,通过设置 Sanitizer 来排查相关的问题。
不能,从后台切到前台后,SDK 的重连都是立即执行的。