通常,从实例方法加载类的Bundle
非常容易:
class SomeClass
func foo() {
let bundle = Bundle(for: type(of: self))
// ...
}
}
但是,如果我们采用静态方法呢?
class SomeClass
static func foo() {
let bundle = Bundle(for: ???)
}
}
我已经尝试了一堆东西,比如SomeClass.type
,等等,但还没有弄清楚。
另外,我希望使用其他初始值设定项之一,例如 URL 或标识符,因为这很脆弱。
谢谢。
您可以使用ClassName.self。
class SomeClass
static func foo() {
let bundle = Bundle(for: SomeClass.self)
}
}
Swift 5
static func foo() {
let bundle = Bundle(for: Self.self)
}