Swift趣闻 同名就是伤害

图片来之网络

一个无解的问题html

一个不是问题的问题swift

一个值得好好思考的问题bash

1. 背景

随着swift版本迭代到4.1,愈来愈多的公司已经开始swift和OC的混合开发,或者swift的重构,或者新项目的swift使用。因此我以为有必要,在项目中添加使用swift了,否则被时代淘汰了。 当时感触最深的仍是,经常使用的OC第三方库已经中止更新,或者更新缓慢。加上swift第三方库的完善而且版本更新快。 果断搞起,先混编吧。学习了一遍swift4.1语法.网络

2. DispatchQueue没法使用

写着swift感受就像回到了大学时代,满怀激动。一切都很顺利,很流畅,很简洁,不少警告。^^ !!^^ !!^^ !!(心情是这样的) 忽然碰到须要延迟处理时,碰到了“Use of unresolved identifier 'DispatchQueue'”的错误提示。async

DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            self.commitBtn.isEnabled = true
        }
复制代码

查询了千山万水,可是发现没有解。ide

3. 解决方法

最后的最后等我查看到DispatchQueue的module名称为Dispatch的时候,我忽然有了一个想法。这个名字为什么那么的熟悉。是的,项目Target名称也叫Dispatch。 赶忙新建一个项目,跑了下DispatchQueue.main.asyncAfter代码,God,执行是成功的。是的,我猜的没有错。同名就是伤害啊。 默默的新添加Target名称为Dispatcher,将以前Target为Dispatch的移除,修改Info.plist和Pod,打包工具。而后编译成功后,再来执行工具

DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            self.commitBtn.isEnabled = true
        }
复制代码

运行成功。学习

4. 总结

系统或第三方用到的Module名称,千万不要与咱们的Target同名,否则会碰到神都没法解的问题。阿门。spa

// END 2018年8月17日 闲来无事挂心头,即是人生好时节code

相关文章
相关标签/搜索