जवाबों:
कभी इस्तेमाल नहीं किया, लेकिन मुझे लगता है कि यह होना चाहिए:
स्विफ्ट <= 2.x
NSBundle(forClass: self.dynamicType)
स्विफ्ट 3.x
Bundle(for: type(of: self))
init?(identifier: String)
यह पहचानने पर विचार करें कि पहचानकर्ता आपके लक्ष्य का बंडल आईडी कहां है। मूल्य प्रकारों के लिए एक और समाधान आपके मूल्य प्रकार के अंदर एक खाली वर्ग घोषित करना है। बाद के समाधान का उदाहरण: Bundle(for: Foo.Bar.self)
जहां Foo
- आपकी संरचना, Bar
- कुछ आंतरिक वर्ग।
type(of: self)
लौटेगा ClassName.Type
और Bundle(for:)
उस कॉल को मुख्य बंडल
स्विफ्ट 3:
Bundle(for: type(of: self))
init?(identifier: String)
यह पहचानने पर विचार करें कि पहचानकर्ता आपके लक्ष्य का बंडल आईडी कहां है। यदि आप बंडल आईडी को हार्डकोड नहीं करना चाहते हैं, तो उपयोग करें Bundle(for: Foo.Bar.self)
जहां Foo
- आपकी संरचना, Bar
- कुछ आंतरिक वर्ग।
let bundle = NSBundle(forClass:object_getClass(self))
स्विफ्ट 5
Bundle(for: Self.self)
कक्षा के डायनेमिक टाइप के लिए 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);
स्विफ्ट 3.0 में, आप उपयोग कर सकते हैं:
func kZWGetBundle() -> Bundle{
return Bundle(for: AnyClass.self as! AnyClass)
}