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

Sup*_*ngo 7 swift

通常,Bundle从实例方法加载一个类非常容易:

class SomeClass
    func foo() {
        let bundle = Bundle(for: type(of: self))
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我们采用静态方法呢?

class SomeClass
    static func foo() {
        let bundle = Bundle(for: ???)

    }
}
Run Code Online (Sandbox Code Playgroud)

我已经尝试了很多类似的东西SomeClass.type,但还没弄明白.

此外,我希望使用其他初始化程序之一,如URL或标识符,因为它很脆弱.

谢谢.

MJN*_*MJN 9

您可以使用ClassName.self.

class SomeClass
    static func foo() {
        let bundle = Bundle(for: SomeClass.self)

    }
}
Run Code Online (Sandbox Code Playgroud)

  • 或者只是`让bundle = Bundle(for:self)` (6认同)