XIB-файлы в Cocopod - PullRequest
       6

XIB-файлы в Cocopod

0 голосов
/ 10 мая 2018

Я просто написал cocoapod и опубликовал его. Локально, это прекрасно работает с примером.

Однако, когда я пытаюсь установить его через «pod install» и использовать его, возникают проблемы с загрузкой файлов XIB.

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle:

В настоящее время я загружаю файл XIB следующим образом:

NSString* const frameworkBundleID  = @"org.cocoapods.MyPod";
NSBundle *podBundle =[NSBundle bundleWithIdentifier:frameworkBundleID];

Ранее я также пытался (ниже), который также работал локально.

NSBundle *podBundle = [NSBundle bundleForClass:[self class]];

Что я мог сделать не так, чтобы он работал локально, но не после публикации?

Только для информации, вот как выглядит спецификация:

s.source_files = 'Pod/Classes/**/*.{h,m}'

s.resource_bundles = {
'NetLogger' => ['Pod/Assets/*.xcassets', 'Pod/Classes/*.xib']
}

1 Ответ

0 голосов
/ 10 мая 2018

У меня была такая же проблема некоторое время назад.Я исправил это, используя определенный класс в качестве ссылки вместо self:

NSBundle *podBundle = [NSBundle bundleForClass:[ClassIncludedInPod class]];

Например, чтобы загрузить MyViewController Я бы использовал:

NSBundle *bundle = [Bundle bundleForClass:[MyViewController class]];
MyViewController *myVC = [[MyViewController alloc] initWithNibName:@"MyViewController" 
                                                            bundle:bundle];

Здесь, в Swift:

let bundle = Bundle(for: MyViewController.self)
let myVC = MyViewController(nibName: "MyViewController", bundle: bundle)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...