Swift:如何从静态方法加载 Bundle



通常,从实例方法加载类的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)
}

最新更新