我正在创建一个私有库,其中包含由库中的组件引用的资源。该库与使用CocoaPods的应用程序共享。在库的.podspec中,我包含了如下一行:
s.resource_bundles = {'IXMapKitResources' => ['IXMapKit/Resources/*']}
该捆绑包中的资源之一是具有多个图像集的资产目录,其中一个称为“IXMKAnnotationIcons-Normal- in”。下面的代码返回一个nil:
UIImage * image = [UIImage imageNamed: @"IXMKAnnotationIcons-Normal-Accident"];
我找到了一个描述如何从pod加载字体的article on mokacoding.com,但这对我不起作用:
- (UIImage *) ixmk_imageNamed: (NSString *) name
{
NSString * IXMKResourceBundleName = @"IXMapKitResources.bundle";
NSString * resourceName = [NSString stringWithFormat: @"%@/%@", IXMKResourceBundleName, name];
NSString * imageTypeString = [self ixmk_stringForImageType: imageType];
NSURL * url = [[NSBundle mainBundle] URLForResource: resourceName withExtension: imageTypeString];
NSData * imageData = [NSData dataWithContentsOfURL: url];
if (imageData != nil)
{
CGDataProviderRef provider = CGDataProviderCreateWithCFData((CFDataRef) imageData);
CGImageRef imageRef = [self ixmk_imageFromDataProvider: provider imageType: imageType];
UIImage * image = [UIImage imageWithCGImage: imageRef];
CFRelease(imageRef);
CFRelease(provider);
return image;
}
else
{
return nil;
}
}
CocoaPods webpage describing the resources keyword具有以下警告:
我们强烈建议库开发人员采用资源包,因为使用资源属性可能会出现名称冲突。此外,使用该属性指定的资源会直接复制到客户机目标,因此Xcode不会对它们进行优化。
我在这里不知所措。
https://stackoverflow.com/questions/23835052
复制相似问题