Jawaban:
Tidak pernah digunakan, tapi saya pikir seharusnya ini:
Cepat <= 2.x
NSBundle(forClass: self.dynamicType)
Cepat 3.x
Bundle(for: type(of: self))
init?(identifier: String)mana pengidentifikasi adalah bundel ID target Anda. Solusi lain untuk tipe nilai adalah dengan mendeklarasikan kelas kosong di dalam tipe nilai Anda. Contoh dari solusi terakhir: di Bundle(for: Foo.Bar.self)mana Foo- struct Anda, Bar- beberapa kelas batin.
type(of: self)akan kembali ClassName.Typedan memanggil Bundle(for:)yang mengembalikan bundel utama
Swift 3:
Bundle(for: type(of: self))
init?(identifier: String)mana pengidentifikasi adalah bundel ID target Anda. Jika Anda tidak ingin meng-hardcode ID bundel, gunakan di Bundle(for: Foo.Bar.self)mana Foo- struct Anda, Bar- beberapa kelas dalam.
let bundle = NSBundle(forClass:object_getClass(self))
Cepat 5
Bundle(for: Self.self)
Jika Anda mengerjakan sebuah kelas, maka
Bundle(for: type(of: self))
Kadang-kadang Anda dapat bekerja dalam sebuah struct, maka Anda perlu menggunakan kelas apa pun di bundel
Bundle(for: AnyClassInTheBundle.self)
Memuat xib untuk dynamicType kelas
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);
Di Swift 3.0, Anda dapat menggunakan:
func kZWGetBundle() -> Bundle{
return Bundle(for: AnyClass.self as! AnyClass)
}