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

时间:2017-09-15 18:40:56

标签: swift

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

class SomeClass
    func foo() {
        let bundle = Bundle(for: type(of: self))
        // ...
    }
}

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

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

    }
}

我尝试了很多像SomeClass.type等的东西,但还没有想到它。

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

感谢。

2 个答案:

答案 0 :(得分:7)

您可以使用ClassName.self。

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

    }
}

答案 1 :(得分:0)

雨燕5

static func foo() {
        let bundle = Bundle(for: Self.self)
   }