Qual è rapido equivalente del codice successivo:rapida equivalente di [NSBundle bundleForClass: [class auto]]
[NSBundle bundleForClass:[self class]]
ho bisogno di risorse carico da fascio di prova (dati JSON)
Qual è rapido equivalente del codice successivo:rapida equivalente di [NSBundle bundleForClass: [class auto]]
[NSBundle bundleForClass:[self class]]
ho bisogno di risorse carico da fascio di prova (dati JSON)
mai usato, ma io penso che dovrebbe essere questo:
Swift < = 2.x
NSBundle(forClass: self.dynamicType)
3.x Swift
Bundle(for: type(of: self))
let bundle = NSBundle(forClass:object_getClass(self))
personalmente mi piace:
let bun = NSBundle(forClass: self.classForCoder)
Funziona meglio con Swift 3.1 (Xcode 8.3) – adib
Caricamento del XI ter per dynamicType della classe
let bundle = NSBundle(forClass: self.dynamicType)
let nib = UINib(nibName: "CellForAlert", bundle: bundle)
let view = nib.instantiateWithOwner(self, options: nil).first as! UIView
view.frame = bounds
view.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.addSubview(view);
Swift 3:
Bundle(for: type(of: self))
La soluzione doesn ' t lavoro per i tipi di valore. Prendi in considerazione l'uso di 'init? (Identificatore: stringa)' dove identificatore è l'ID del gruppo del tuo target. Se non si desidera codificare l'ID del bundle, utilizzare 'Bundle (per: Foo.Bar.self)' dove 'Foo' - la propria struct,' Bar' - una classe interna. –
In Swift 3.0, è possibile utilizzare:
func kZWGetBundle() -> Bundle{
return Bundle(for: AnyClass.self as! AnyClass)
}
Si blocca –
La risposta selezionata non ha funzionato per me in un metodo statico di una sottoclasse UIView, ma ho trovato questo:
Bundle(for: self.classForCoder)
Funziona anche quando si desidera ottenere Bundle
all'interno di una destinazione di prova.
Il completamento automatico della versione corrente di Xcode si comporta come se non avesse idea di cosa si stia parlando, ma funziona davvero. –
Yanno. Adoro questo posto! Grazie! –
nella versione 2.1: NSBundle (forClass: self) – zwebie