首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.dynamicType已弃用。使用'type(of ...)‘相反,

.dynamicType已弃用。使用'type(of ...)‘相反,
EN

Stack Overflow用户
提问于 2016-09-15 00:04:14
回答 2查看 16K关注 0票数 32

我刚刚更新到Xcode8和iOS 10 (使用传统的Swift语言版本)。

尝试重新编译我的项目是一件痛苦的事情,甚至仍然使用旧的Swift语法。这一次,我的一个函数使用了NSBundle(forClass: self.dynamicType),但是现在看起来.dynamicType被弃用了,Xcode甚至不想编译它。

他的建议是使用type(of: self),但也失败了。有人知道解决方案吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-22 17:25:59

@dfri answer非常适合Swift 3。

关于Swift 2.3,我的解决方案是清理Xcode (Command+Option+Shift+K)并删除~/Library/Developer/Xcode/DerivedData中的所有内容。这个问题不会立即消失,但过一段时间它就会停止给出这个错误。

也许这是一个bug,毕竟我们是在8.0中。我希望它在下一个版本中得到修复。

谢谢大家。

票数 3
EN

Stack Overflow用户

发布于 2016-09-15 00:31:49

(下面的结论适用于Swift 3;但不是传统的Swift语言版本(2.3),因此它没有回答OP的问题,但对Swift 3用户来说可能是有价值的)

正如你在问题中提到的,现在(Swift 3)为了支持type(of:)而弃用了dynamicType。此外:

  • NSBundle已重命名为Bundle.
  • The,init(for:).

init(forClass:)初始化程序已重命名为Bundle

考虑到这些更改,对于Swift 3,您可以通过以下方式初始化(或获取与特定类关联的现有实例) Bundle对象:

代码语言:javascript
复制
class Foo {
    func bar() -> () {
        let bundle = Bundle(for: type(of: self))
        // ...
    }
}
票数 35
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39495021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档