tags: swift 4.2, 日常爬坑
发现问题
最近在做类似手机来电响铃且震动功能。在一个网上找到一份封装播放铃声的代码。(这位码农这么小个功能还做了framework 和 pod. 获得了600stars)
Demo工程在开发时使用的是swift 4.0,而如今我使用的Xcode 10.0, swift 4.2,。
问题就出在这里,我这个demo工程编译选择的是以前的swift 4.0,然后我个人习惯查看官方文档 (快捷键:command + shift + 0)的版本是swift 4.2的。这就出现了
var category: AVAudioSession.Category = .ambient
ERROR: Type 'AVAudioSession.Category' (aka 'NSString') has no member 'ambient'
定位原因
最后发现是demo工程的swift版本没有选择到最新swift 4.2,导致语法无法识别。
解决路径
targets -> [your project] -> build settings -> swift language version -> [select your swift version]
浪费不少时间解决问题
-> 怀疑自己语法敲错了
-> 怀疑是不是iOS系统版本,选到只支持最新iOS 12还是没有解决。
-> 再次查阅 apple developer document
-> google
-> stack overflow
-> copy 代码到其他工程 尝试
哎?!!! 其他工程中代码并没有报错
然后Xcode 工程中build settings 寻找可疑相关设置项
找到 swift language version
Bingo!
网友评论