Cuál es el equivalente rápido del siguiente código:
[NSBundle bundleForClass:[self class]]
Necesito cargar recursos del paquete de prueba (datos JSON)
Nunca usado, pero creo que debería ser esto:
Swift <= 2.x
NSBundle(forClass: self.dynamicType)
Swift 3.x
Bundle(for: type(of: self))
init?(identifier: String)
donde el identificador es la identificación del paquete de su objetivo. Otra solución para los tipos de valor es declarar una clase vacía dentro de su tipo de valor. Ejemplo de la última solución:Bundle(for: Foo.Bar.self)
dondeFoo
- su estructura,Bar
- alguna clase interna.type(of: self)
volveráClassName.Type
y llamarBundle(for:)
a eso devuelve el paquete principalSwift 3:
fuente
init?(identifier: String)
donde el identificador es la identificación del paquete de su objetivo. Si no desea codificar el ID del paquete, useBundle(for: Foo.Bar.self)
whereFoo
- your struct,Bar
- some class.Personalmente me gusta:
fuente
fuente
Swift 5
fuente
La respuesta seleccionada no me funcionó en un método estático de una subclase UIView, pero encontré esto:
Esto también funciona cuando desea obtener el
Bundle
objetivo de prueba.fuente
Si estás trabajando en una clase, entonces
A veces puede trabajar en una estructura, luego debe usar cualquier clase en el paquete
fuente
Cargando el xib para dynamicType de la clase
fuente
En Swift 3.0, puede usar:
fuente