之前公司一直用本地组件化,现在迭代添加新功能打算用远程组件,然而并没有那么理想,刚开始就碰到xib问题,首先xib 图片 资源信息都是在当前组件的Resources 中,加载方式也不同
+(instancetype)creatAllreadAlterView{
NSBundle *bundle = [NSBundle bundleForClass:[self class]];
NSString *path = [bundle pathForResource:@"组件的名字" ofType:@"bundle"];
NSBundle *bundel = [NSBundle bundleWithPath:path];
return [[bundel loadNibNamed:@"xib名字" owner:self options:nil] lastObject];
}
这只是其中的一种方式 ,当然还有另一种方式,通过url加载bundle,这时候我碰到了一个
(not yet load)
what ? ? ?
根据错误提示找到项目的包文件发现 并没有我创建的nib文件(xib文件名字),自己通过手动xib转nib文件,终于加载成功了,一拖里面的子控件,又出问题了,一运行就崩溃,说是找不到key,一看我就知道 拖动xib子控件的名字 没有映射到xib中去,所有的子控件不能用,我要你何用,这个方法不可行
于是我又找别的问题,由于是在resource中,那问题就出现在组件上了,我觉得很可能是设置问题,找到了podspec文件
s.resource_bundles = {
'ProfileModule' => ['ProfileModule/Assets/*']
}
加载bundle是这么加载的,直接就是* 加载所有资源,但是我的xib并没有加载,抱着试试的心态改成
'ProfileModule' => ['ProfileModule/Assets/*.{png,storyboard,xib,xcassets}']
没想到还成功了,花了2天的时间就解决个这个,唉















网友评论