Qual é o equivalente rápido do próximo código:
[NSBundle bundleForClass:[self class]]
Preciso carregar recursos do pacote de teste (dados JSON)
Nunca usei, mas acho que deveria ser o seguinte:
Swift <= 2.x
NSBundle(forClass: self.dynamicType)
Swift 3.x
Bundle(for: type(of: self))
init?(identifier: String)
onde identificador é o ID do pacote do seu destino. Outra solução para tipos de valor é declarar uma classe vazia dentro do seu tipo de valor. Exemplo da última solução:Bundle(for: Foo.Bar.self)
whereFoo
- your struct,Bar
- alguma classe interna.type(of: self)
vai voltarClassName.Type
e chamandoBundle(for:)
para que os retornos do pacote principalSwift 3:
fonte
init?(identifier: String)
onde identificador é o ID do pacote do seu destino. Se você não deseja codificar o código do pacote, useBundle(for: Foo.Bar.self)
whereFoo
- sua estrutura,Bar
- alguma classe interna.Eu pessoalmente gosto de:
fonte
fonte
Swift 5
fonte
A resposta selecionada não funcionou para mim no método estático de uma subclasse UIView, mas achei o seguinte:
Isso também funciona quando você deseja obter o
Bundle
alvo dentro de um teste.fonte
Se você estiver trabalhando em uma aula, então
Às vezes, você pode trabalhar em uma estrutura e, em seguida, precisa usar qualquer classe no pacote
fonte
Carregando o xib para dynamicType da classe
fonte
No Swift 3.0, você pode usar:
fonte