iOS Coding管理打包之Xib报错处理

在项目要使用Coding管理,进行模块化的过程中,遇到了不能打包xib问题,因为他找不到文件了,经搜索各种最后解决,需要把xib生成nib文件才可以,并且内部代码需要特殊处理。

  • 问题:

1).首先xib文件会使pod打包失败,故需要把xib转nib。
2).其次注册xib的方法需要进行整改,否则工程找不到目标文件。

  • 解决方案:

注册Xib Cell方法需改成注册nib
并通过Bundle中url拿到nib文件

 NSURL *url = [[NSBundle bundleForClass:[self class]]  URLForResource:@"ZCTestCell" withExtension:@"bundle"];
 NSBundle *resourcesBundle = [NSBundle bundleWithURL:url];
 UINib *cellNib = [UINib nibWithNibName:NSStringFromClass([ZCTestCell class]) bundle:resourcesBundle];
 [self.tableView registerNib:cellNib forCellReuseIdentifier:identifier];

有两种解决方案:

  1. 使用命令xib转nib
  2. 创建Bundle文件,直接生成nib文件

以下是命令行xib转nib:
ibtool --errors --warnings --output-format human-readable-text --compile /Users/yz/iOSwork/sourceTree/do-iOS/do_Album/doExtLib/AlbumController/doYZAssetCell.nib /Users/yz/iOSwork/sourceTree/do-iOS/do_Album/doExtLib/AlbumController/doYZAssetCell.xib

注释:

终端输入:
ibtool --errors --warnings --output-format human-readable-text --compile
贴上要生成的Nib路径以及文件名称:
/Users/yz/iOSwork/sourceTree/do-iOS/do_Album/doExtLib/AlbumController/doYZAssetCell.nib
贴上把Xib的文件路径:
/Users/yz/iOSwork/sourceTree/do-iOS/do_Album/doExtLib/AlbumController/doYZAssetCell.xib

编译好nib之后,在bundle中把xib替换掉,然后把bundle拖到主项目中,添加引用即可加载。

你可能感兴趣的:(iOS Coding管理打包之Xib报错处理)