[Cocoapods]:资源包不是accessbile

Ara*_*nir 5 resources objective-c ios cocoapods

在我使用podspec加载资源之前:

s.resources = ["MyFramework/Resources/**/*.{xib, png, jpeg, jpg}"]
Run Code Online (Sandbox Code Playgroud)

现在我尝试用以下方法完成同样的工作:

s.resource_bundles = {'Resources' => ['MyFramework/Resources/**/*.{xib, png, jpeg, jpg}']}
Run Code Online (Sandbox Code Playgroud)

它们似乎被复制,因为我可以在下面找到它们:

Pods\Development Pods\MyFramework\Resources

但是当我尝试加载它们时:

UIImage *testImage = [UIImage imageNamed:@"testImage.jpeg"];
Run Code Online (Sandbox Code Playgroud)

testImage始终是零.

我还试图找出是否有一个可访问的包,所以我需要从创建的包中加载图像但是:

NSArray *bundles = [[NSBundle mainBundle] pathsForResourcesOfType:@"bundle" inDirectory:nil];
Run Code Online (Sandbox Code Playgroud)

显示没有通过Cocoapods创建捆绑包.

我究竟如何访问这些资源?

Hai*_*Kao 0

资源被放在一个名为“资源”的包中。

s.resource_bundles = {'Resources' => ['MyFramework/Resources/**/*.{xib, png, jpeg, jpg}']}
Run Code Online (Sandbox Code Playgroud)

您可以通过以下代码访问该捆绑包

NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle]
                                                 pathForResource:@"Resources"      
                                                          ofType:@"bundle"]];
Run Code Online (Sandbox Code Playgroud)

其中的关键s.resource_bundles是包名称。

注意:我有一些由以下代码列出的捆绑包。您的 Pod 设置中可能存在其他问题。NSArray *bundles = [[NSBundle mainBundle] pathsForResourcesOfType:@"bundle" inDirectory:nil];