Быстрый эквивалент [NSBundle bundleForClass: [собственный класс]] Что такое быстрый эквивалент следующего кода: [NSBundle bundleForClass:[self class]] Мне нужны ресурсы загрузки из тестового пакета (данные JSON) Ответ 1 Никогда не используется, но я думаю, что это должно быть так: Swift <= 2.x NSBundle(forClass: self.dynamicType) Swift 3.x Bundle(for: type(of: self)) Ответ 2 Swift 3: Bundle(for: type(of: self)) Ответ 3 Мне лично нравится: let bun = NSBundle(forClass: self.classForCoder) Ответ 4 let bundle = NSBundle(forClass:object_getClass(self)) Ответ 5 Выбранный ответ не работал у меня в статическом подклассе UIView, но я нашел это: Bundle(for: self.classForCoder) Это также работает, когда вы хотите получить Bundle в пределах тестовой цели. Ответ 6 Загрузка xib для dynamicType класса 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); Ответ 7 Если вы работаете в классе, то Bundle(for: type(of: self)) Иногда вы можете работать в структуре, тогда вам нужно использовать любой класс в комплекте Bundle(for: AnyClassInTheBundle.self) Ответ 8 В Swift 3.0 вы можете использовать: func kZWGetBundle() -> Bundle{ return Bundle(for: AnyClass.self as! AnyClass) }
Ответ 1 Никогда не используется, но я думаю, что это должно быть так: Swift <= 2.x NSBundle(forClass: self.dynamicType) Swift 3.x Bundle(for: type(of: self))
Ответ 5 Выбранный ответ не работал у меня в статическом подклассе UIView, но я нашел это: Bundle(for: self.classForCoder) Это также работает, когда вы хотите получить Bundle в пределах тестовой цели.
Ответ 6 Загрузка xib для dynamicType класса 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);
Ответ 7 Если вы работаете в классе, то Bundle(for: type(of: self)) Иногда вы можете работать в структуре, тогда вам нужно использовать любой класс в комплекте Bundle(for: AnyClassInTheBundle.self)
Ответ 8 В Swift 3.0 вы можете использовать: func kZWGetBundle() -> Bundle{ return Bundle(for: AnyClass.self as! AnyClass) }