首页 >iOS开发

Swift趣闻--同名就是伤害

2018-09-12 10:03 编辑: Gboy 分类:iOS开发 来源:蝴蝶之梦天使

一个无解的问题
一个不是问题的问题
一个值得好好思考的问题

1. 背景

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

2. DispatchQueue无法使用

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

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

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

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同名,不然会碰到神都无法解的问题。阿门。



作者:蝴蝶之梦天使
链接:https://www.jianshu.com/p/fac3ef3cb511


搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:iOS倒计时的探究与选择
下一篇:iOS:一用就上瘾的刮刮乐视图
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部