weak的实现原理
发表于|更新于
|浏览量:
weak的实现原理
文章作者: 今是昨非
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
相关推荐
2022-09-07
iOS 编译时间优化
背景目前App项目不大,但是清空后重新编译时间需要200多秒,感觉不太合理,所以,就着手排查了一下。 通常的编译时间优化都是分为三个部分 Xcode编译设置的优化 代码或函数编译时间的优化 三方库编译时间的优化 这里就根据上面三个部分来一一排查。 实现Xcode编译设置的优化使用的是Xcode 13.4,网上搜到的,关于Xcode设置New Build System,及Build Settings中设置Debug Information Format的都不需要设置了,默认已经是合理的。至于Optimization Level的设置,设置后,虽然编译速度可以提升,但是对于Debug不友好,所以,这里也不做设置。故而针对这项优化什么都没有处理。 代码或函数编译时间的优化这方面主要是针对Swift,首先把编译耗时的方法显示出来,在Build Settings中Other Swift Flags添加如下设置,意思是显示编译超过200ms的函数或者类型检查超过300ms的函数显示warning,这里200ms是自己设定,可针对项目的真实情况设置: 1234-Xfrontend -w...
2021-09-03
iOS 15导航栏设置
iOS 15导航栏设置背景使用Xcode 13.0运行项目到iOS 15的手机上,出现导航栏黑色。但是在低版本Xcode 运行到手机就没有问题。 修改设置方法需修改,参考barTintColor not working in iOS 15 原来设置导航栏代码不变,新增设置UINavigationBarAppearance实例对象的属性,然后赋值到全局的 navigationBar 或者单个页面的 navigaitonBar 属性中,取决于项目的设置是全局 NavigationBar 还是单个页面设置(可参考iOS StatusBar 设置)。 代码如下: 123456789101112131415161718- (void)updateNavigationBarColor:(UIColor *)color { UINavigationBar *bar = self.navigationController.navigationBar; if (@available(iOS 13.0, *)) { UINavigationBarAp...
2021-06-07
CocoaPod 私有库Spec依赖.a写法
CocoaPod 私有库Spec编辑注意事项CocoaPod 私有库Spec依赖.a写法 PodSpec详细描述如下, 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869Pod::Spec.new do |s| # 库名称 s.name = 'AudioRecorder' # 库的版本 s.version = '0.1.0' # 库摘要 s.summary = 'AudioRecorder提供iOS录音和录音播放功能' # 库描述 s.description = <<-DESC AudioRecorder提供iOS录音和录音播放功能 DESC # 远程...
2020-07-12
iOS14适配一查找哪些SDK使用剪切板
iOS14适配一查找哪些SDK使用剪切板背景iOS14公测版发出之后,我们app出现了从后台唤起会弹出 读取剪切板的 提示,安全要求要赶紧查,全局搜索了我们APP,发现并没有读取剪切板的代码,比窦娥还冤,只能是第三方SDK的问题了,但是项目里集成了十几个第三方SDK,一个个排查删除,万一两个SDK都有,这个排列组合可能性就太多了。 脑壳疼了好几天,求助万能的V友和群友,然后找到了好的办法 步骤1: 用Xcode的Symbolic breakpoint,调试[UIPasteboard generalPasteboard],按照重现步骤,例如,我们APP是从后台唤起来会有这个提示,就打断点,然后走这个流程。 步骤2: 断点会停在调用到这个方法的地方,然后上下查看,如果还不能确认是哪个SDK的话,就单步向下走几步,然后就会出现调用方 步骤3:具体调用的类已经暴露了之后,怎么确定这是哪个SDK的呢?在工程目录中使用命令(来自群友的帮助):12find . -type f | grep -e ".framework" | xargs grep -s...
2024-06-07
Safari 获取 Bing Rewards 插件
背景Bing Rewards 可以兑换天猫礼品卡、中国石化礼品卡、肯德基电子券、盒马礼品卡、苹果礼品卡等。level 1 的时候每天至多获取 30 积分,level 2 的可以电脑端 90积分、手机端60 积分。每天150 积分点着太累了,就想着有没有一键的便捷操作。 找到了一个通过 Chrome 插件Rewards-Search-Automator: Chrome / Edge extension for automatic Bing Search,来实现的,除去其中的 Mobile 不生效,外加搜索完成跳转开发者的网站,别的还好,可以自己下载代码,修改去掉跳转开发者网站的逻辑。 但是就是还有个问题,在 iPhone 上用不了,所以手机端的 60 积分还是不能一键获取,所以就想到了,借鉴这个做个 Safari 插件,然后就可以在iPhone上用了。 实现逻辑很简单,iPhone 使用 Bing 搜索,然后抓包出请求,然后提取出关键的form,再封装到 Safari Extension 中,当 popup 出来的时候,触发搜索。添加生成随机字符串的逻辑,每隔 6 秒,重新搜...
2021-07-15
Xcode 12.x添加iOS 10.x模拟器
Xcode 12.x添加iOS 10.x模拟器背景笔者昨天遇到个问题,有用户反馈在iOS 10.3.1的手机上,有个网页打开白屏。但是问题是笔者手头都没有10.x版本的手机,所以想安装模拟器来尝试复现。 然而,笔者发现电脑上的Xcode版本是12.5.1,已经不支持iOS 10.3.1的模拟器下载了。 步骤下载iOS 10.3.1模拟器然后笔者搜索后发现,Xcode 12.4还是支持下载iOS 10.3.1的模拟器的,于是去Xcode 下载网站,下载了Xcode 12.4,然后CMD + ,打开Xcode的偏好设置,在Components选项卡中,找到iOS 10.3.1 Simulator并下载,如下图。 添加iOS 10.3.1模拟器通常添加模拟器,是选中Xcode,通过顶部菜单的Window -> Device and Simulators,选中Simulators,点击左下角的+,添加模拟器,如下图 会发现,即使下载了iOS 10.3.1模拟器,依旧不能添加,下载了却不能添加。 于是笔者接着查找,终于仅有的一篇真理文章在 Xcode 12 執行低版本的 i...
公告
This is my Blog