我刚刚更新到 Xcode 8 和 iOS 10(使用旧版 Swift 语言版本)。
尝试再次编译我的项目一直是一种痛苦,即使仍然使用旧的 Swift 语法。这次我的函数之一使用NSBundle(forClass: self.dynamicType)
但现在看来.dynamicType
已被弃用,Xcode 甚至不想编译它。
他的建议是使用type(of: self)
但这也失败了。有人知道解决方案吗?谢谢。
(下面的内容适用于 Swift 3;但是,不是旧版 Swift 语言版本 (2.3),因此它没有回答 OP 的问题,但对于 Swift 3 用户来说可能很有价值)
正如你的问题中所指出的,dynamicType
现在(Swift 3)已弃用,取而代之的是type(of:)
。此外:
-
NSBundle
已更名为Bundle
.
- The
init(forClass:)
的初始化器Bundle
已更名为init(for:)
.
考虑到这些更改,对于 Swift 3,您可以初始化(或获取与特定类关联的现有实例)您的Bundle
对象以下列方式:
class Foo {
func bar() -> () {
let bundle = Bundle(for: type(of: self))
// ...
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)