weak的实现原理
发表于|更新于
|浏览量:
weak的实现原理
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-09-05
MapManagerSDK集成记录
背景最近集成MapManagerSDK,遇到了几个问题这里记录一下: 问题一: 对接文档中提示的导入GMObjC算法SDK方式如下,导入后编译不通过,提示:"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4 pod 'GMObjC','3.0.0' 问题二: 导入MapManager后,QMUI库或者其他第三方库,原本正常的,现在报错编译不通过。 问题三: 上面都解决了,编译成功,一启动就崩溃。 解决:问题一"sm2_plaintext_size" Too many arguments to function call, expected 3, have 4的解决很简单,改为pod 'GMObjC',安装最新版即可。 问题二,查看后,发现报错的地方是属性或者方法中使用了debug或者release定义变量。但是为什么之前没有问题,导入MapManagerSDK后,就报错了呢?仔细排查后发现...
2024-07-11
SafariFreeMedium插件
背景在阅读上篇 Flutter状态管理中,引用的几篇文章都需要是Medium 会员才能查看的。没有付费的每个月免费只能查看几次,所以就想有没有不付费查看这个的方法,就去搜索了一下。 实现搜索之后,找到了这篇Freedium · GitHub,查看后发现里面有个简单的方法,就是把 host 替换为````freedium.cfd然后重定向。 刚好自己有账号,为了在 Safari 中便于使用,就自己写了一个插件,效果如下: 参考 Freedium · GitHub
2024-11-19
Xcode使用免费的Codeium代码补全插件
背景在使用Xcode开发iOS应用时,经常需要编写大量的代码,而代码补全是提高开发效率的重要工具。Codeium是一款免费的代码补全插件,它可以帮助快速编写代码,提高开发效率。 如果有付费Copilot的,可以直接使用CopilotForXcode,之前公司有企业付费,所以用的这个工具,换公司后,不能用了,所以就想找一个免费的,虽然CopilotForXcode也包含有Codeium,但是却一直用不了。所以就想找一个能用Codeium的,参考 Codeium in Xcode ,起始项目是从CopilotForXcode中引出的,只为专门使用Codeium创建的,所以安装步骤和使用跟CopilotForXcode几乎一样。 使用安装步骤可以参考CodeiumForXcode,大致共有下面几个地方。 System Preferences ——> Privacy & Security ——> Accessibility中,将Codeium添加到列表中。如下图: General ——> Login Items & Extensions 中,将...
2021-08-30
iOS 在文件中访问 Document Directory
iOS 在文件中访问 Document DirectoryiOS 11之后,在 Plist 中设置LSSupportsOpeningDocumentsInPlace为 YES,且UIFileSharingEnabled为 YES,可以从系统的Files应用中访问应用的 Documents 目录。 如下: 从系统的文件打开,查看我的 iPhone如下,开启了此功能的应用可以从这里面看到 注意:此目录是 APP 的Documents目录,所以 APP 删除后,目录就消失了。 参考: iOS文件共享
2020-08-10
iOS beta4崩溃修改
iOS beta4崩溃修改前言升级iOSBeta4后,有用户反馈使用我们APP时会崩溃,有登录的、查看详情的,都会出现崩溃。我们查看Bugly数据也发现崩溃率上升了0.02%,直接超出了指定的崩溃指标。虽然是由于升级beta版系统导致的,但还是要排查出具体原因,然后尽快适配。所以我说一下我发现的哪个API导致的,供大家参考一下。 排查由于崩溃是必现的,所以排查起来很容易,找一台升级了iOS14 beta4的手机,然后复现步骤,看具体崩溃的地方,即可我们APP是由于使用了SexyJson这个库,其中SexyJsonProtocol这个类第67行中sexyToValue()的方法里使用AnyRandomAccessCollection这个地方有强制解包属性,在之前的系统版本中,这个地方返回的值不为空,所以没有问题,但是在这个版本里,这个属性返回为空了,就导致了新系统中的崩溃。 如图所示位置: 修改由于是强制解包导致的,所以直接的修改就是,把这个地方的强制解包,改为if let的格式,修改后,运行,binggo,崩溃确实没了。但是在验证过程中,由于我们使用这个是把请求的对象转为参数...
2022-09-14
Xcode14编译失败修改
背景升级Xcode 14后,项目编译失败修改,共修改了两种编译错误: 一种是bundle code sign error,Xcode 14 needs selected Development Team for Pod Bundles 一种是Module compiled with Swift 5.6.1 cannot be imported by the Swift 5.7 compiler 其中第一种比较容易解决,第二种稍微麻烦点,解决方案如下: 解决Xcode 14 bundle code sign error这个的解决方案,直接Google,第一个stackoverflow的链接是Xcode 14 needs selected Development Team for Pod Bundles,这里面给出的解决方法是,在Podfile里增加下面代码,然后运行Pod install,设置Pod库的DEVELOPMENT_TEAM是开发者账号的team。 笔者有两个项目,其中一个是Swift为主,用下面的设置方法试了,可以解决。要注意的是如果项目有多个target,ta...