回答:
使用したことはありませんが、これは次のようになります:
スウィフト<= 2.x
NSBundle(forClass: self.dynamicType)
Swift 3.x
Bundle(for: type(of: self))
init?(identifier: String)
identifierがターゲットのバンドルIDである場所の使用を検討してください。値型の別の解決策は、値型内で空のクラスを宣言することです。後者のソリューションの例:Bundle(for: Foo.Bar.self)
ここでFoo
-あなたの構造体Bar
-一部の内部クラス。
type(of: self)
戻りClassName.Type
、それを呼び出すBundle(for:)
とメインバンドル
スウィフト3:
Bundle(for: type(of: self))
init?(identifier: String)
identifierがターゲットのバンドルIDである場所の使用を検討してください。あなたは、バンドルID、使用ハードコーディングしたくない場合は、あなたの構造体、 - -いくつかの内部クラスを。Bundle(for: Foo.Bar.self)
Foo
Bar
クラスのdynamicTypeのxibをロードする
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.0では、以下を使用できます。
func kZWGetBundle() -> Bundle{
return Bundle(for: AnyClass.self as! AnyClass)
}