最近做私有库碰到的问题如下:
1、imageWithContentsOfFile:参数要不要加@2x @3x
图片(带@2x@3x
)在bundle
文件内,加载图片如下写加载不出数据:
/// 加载工具类内部toolClassName
+ (NSBundle *)bundle {
static NSBundle *bundle = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
bundle = [NSBundle bundleWithPath:[[NSBundle bundleForClass:[self class]] pathForResource:@"bundle文件名" ofType:@"bundle"]];
});
return bundle;
}
+ (nullable UIImage *)imageNamed:(NSString *)name {
if ( 0 == name.length )
return nil;
NSString *path = [self.bundle pathForResource:name ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:path];
image = [UIImage imageWithCGImage:image.CGImage scale:3.0 orientation:image.imageOrientation];
return image;
}
调用:
[toolClassName imageNamed:@"图片名不加@2x@3x"];
结果:加载不出图片数据。
修正:
+ (nullable UIImage *)imageNamed:(NSString *)name {
if ( 0 == name.length )
return nil;
// @"/%@.png" == @"/%@"结果一样
NSString *pngPath = [[self.bundle resourcePath] stringByAppendingString:[NSString stringWithFormat:@"/%@.png", name]];
UIImage *image = [UIImage imageWithContentsOfFile:pngPath];
image = [UIImage imageWithCGImage:image.CGImage scale:3.0 orientation:image.imageOrientation];
return image;
}
成功!
2、私有库A依赖另一个私有库B的时候,当库B文件结构发生改变的时候(比如图片bundle的加入),对A进行pod install之后,会发现A中的B并未发生相应的变化,解决办法:
重新引入索引库即可:
source 'http://xx.xxx.cn/xxx/xxx.git' # B库
3、报错信息:ERROR | [iOS] unknown: Encountered an unknown error (Unable to find a specification for 'xxx' depended upon bg 'xxxx')
pod lib lint xxx --use-libraries
pod spec lint xxx --use-libraries
pod repo push 本地Spec文件 xxx.podspec xxx --use-libraries
当执行以上代码的时候报错如下所示:
error解决办法:
在以上后面加上 --sources='私有库1索引地址, 私有库2索引地址,https://github.com/CocoaPods/Specs,等等) --use-libraries
如下:
pod lib lint --sources='http://xxx/zkhy-ios/xxxSpec.git, https://github.com/CocoaPods/Specs, http://x.cn/zkhy-ios/x.git' --use-libraries --allow-warnings
'
网友评论