访问 Pod 中的资源

2024-01-10

我想将图像资源包含在 cocoapod 库中,但访问它们时遇到问题。我已阅读这些资源来寻求帮助:

Cocoapods 资源 http://guides.cocoapods.org/syntax/podspec.html#resources

Cocoapods 资源包 http://guides.cocoapods.org/syntax/podspec.html#resource_bundles

Mokacoding 资源包 http://www.mokacoding.com/2014/02/13/sharing-assets-with-cocoapods-resource-bundle-and-dynamically-loaded-fonts.html

大卫·波特资源包 https://stackoverflow.com/questions/23835052/load-image-from-cocoapods-resource-bundle

然而,没有人指出我访问资源的方向。我尝试过以下方法:

[UIImage imageWithData:[NSData dataWithContentsOfURL:[(NSBundle *)[NSBundle bundleWithIdentifier:@"Assets"] URLForResource:@"my-image@2x" withExtension:@"png"]]]
[UIImage imageWithData:[NSData dataWithContentsOfURL:[(NSBundle *)[NSBundle bundleWithIdentifier:@"Assets"] URLForResource:@"my-image" withExtension:@"png"]]]
[UIImage imageWithData:[NSData dataWithContentsOfURL:[(NSBundle *)[NSBundle bundleWithIdentifier:@"Assets.bundle"] URLForResource:@"my-image" withExtension:@"png"]]]
[UIImage imageWithData:[NSData dataWithContentsOfURL:[(NSBundle *)[NSBundle mainBundle] URLForResource:@"my-image" withExtension:@"png"]]]
[[UIImage imageWithData:[NSData dataWithContentsOfURL:[(NSBundle *)[NSBundle mainBundle] URLForResource:@"my-image@2x" withExtension:@"png"]]]
[UIImage imageNamed:@"my-asset"]
[UIImage imageNamed:@"[email protected] /cdn-cgi/l/email-protection"]

但它们都不起作用。

我已经使用这些替代方案设置了我的 podspec,但两者都不适用于上述方案:

s.resources = ['Pod/Assets/*.{png, jpg}', 'Pod/Assets/**/*.{png, jpg}']
s.resource_bundles = {
    'Assets' => ['Pod/Assets/*.{png, jpg}', 'Pod/Assets/**/*.{png, jpg}']
}

资源显示在“开发 Pods/我的应用程序/资源”下pod update,但我一生都无法访问它们。没有任何捆绑包,也没有任何名为“资产”的东西。

任何帮助或指导将不胜感激。


这取决于您使用的 Cocoapods 版本。对于旧版本的 cocoapods,您可以使用 [NSBundle mainBundle]:pathForResource:ofType:

NSString *bundlePath = [[NSBundle mainBundle] 
    pathForResource:@"MyResourceBundle" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];

如果您使用较新的Cocoapods并在podspec文件中使用spec.resource_bundles而不是spec.resources,则必须避免使用mainBundle并将其替换为NSBundle bundleForClass,其中“返回与指定类关联的 NSBundle 对象 https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSBundle_Class/index.html#//apple_ref/occ/clm/NSBundle/bundleForClass:"

Example:

NSString *bundlePath = [[NSBundle bundleForClass:[MyFrameworkClass class]] 
    pathForResource:@"MyResourceBundle" ofType:@"bundle"];
NSBundle *bundle = [NSBundle bundleWithPath:bundlePath];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问 Pod 中的资源 的相关文章

  • 外设 writeValue: forCharacteristic: 类型: 返回 null 错误和值

    我正在使用苹果编写的以下代码 https developer apple com library mac samplecode HeartRateMonitor Listings HeartRateMonitor HeartRateMoni
  • ios7.1:推送通知徽章更新问题

    我已经设置了Push Notification在我当前的项目之一中 我已遵循推送通知所需的所有说明 在 tag ios7 中工作正常 但在7 1当我的应用程序处于后台模式时 我在徽章更新中遇到问题 我的代码如下 BOOL applicati
  • 使用 flutter 构建 iOS 项目时出现的问题

    升级 Xcode 15 beta 5 后 无法构建项目 显示错误 Firebase 1 问题 DT TOOLCHAIN DIR 不能用于评估 LIBRARY SEARCH PATHS 请改用 TOOLCHAIN DIR FirebaseAn
  • Swiftui 应用程序在 iOS 14 / 15 上使用不同的 SearchBar (ViewModifier) 时崩溃

    我在 iOS 14 上使用 SwiftlySearch 在 iOS 15 上使用 searchable struct CompatibleSearchBarModifier ViewModifier Binding var text Str
  • 苹果的外部配件(蓝牙)仅适用于 MFI 设备? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的学士论文的目标是通过蓝牙适配器将光串行设备连接到 iPad 目前我正在努力应对苹果的限制 我经常在网上看到我可以使用支持的配置文件 h
  • 自定义 UIPopoverController 视图背景和边框颜色

    是否可以更改弹出视图的边框颜色 导航栏样式 颜色和箭头样式 颜色 如果是这样 怎么办 如果有一些示例代码可用 那就太好了 iOS 7以上 可以更改backgroundColor of UIPopoverController这会影响导航背景颜
  • 切换到 Xcode 7 后,应用程序大小从 9 MB 增长到 60 MB,有解决办法吗?

    我一直在回顾 Git 历史来寻找文件大小发生巨大变化的原因 但我能找到的唯一真正原因是从 Xcode 6 切换到 Xcode 7 GM 我发现这些是文件大小贡献最大的 10 个 ipa创建自Archive操作在一个Release构建配置 u
  • Alamofire 仅在 GET 请求上出现请求错误

    我正在努力将我的项目从 AFNetworking 转移到 Alamofire 真的很喜欢这个项目 POST 请求工作得很好 但是 我在尝试发出 GET 请求时收到此错误 这是一些示例代码 class func listCloudCrednt
  • 使用 CLPlacemark、administrativeArea、iOS6/iOS7 更改内容

    我计划为 ios 7 制作一个应用程序 并且有管理区域地标属性的问题 对于 iOS6 我得到行政区域的全名 例如 加利福尼亚 但对于 iOS7 我得到 CA 的值 当情况如此变化时 这是一个问题 有什么方法可以控制这个输入 使其更加一致吗
  • 核心数据二进制数据允许外部存储崩溃

    我在 iOS 12 0 1 上发生崩溃 日志如下 ImageIO CFDataGetBytes data 0x28539b2f0 size 154262 offset 8 count 8 dst 0x16dbf86f0 External d
  • NSNotification 与dispatch_get_main_queue

    和 关联这个问题 https stackoverflow com questions 7905192 iphone grand central dispatch main thread我想知道关于何时使用 NSNotification 在主
  • iOS TestFlight - 外部测试人员未收到新版本通知

    我已经向外部 TestFlight 用户提供了一个应用程序 他们已收到电子邮件并按预期安装了应用程序 他们有版本 1 0 Build 1 不过 我现在已经上传了一个新版本 版本 1 0 版本 2 这已获得批准 在外部测试页面中 我添加并选择
  • iOS 上邮件到达时收到通知吗?

    当邮件到达标准邮件应用程序时 有没有办法让应用程序收到通知 更准确地说 我想编写一个应用程序 它能够从标准邮件应用程序读取传入的电子邮件 其中包含自定义 txt 格式的新联系人或事件 然后 应用程序应将此新联系人 事件添加到 ipad 反之
  • Xcode 和 Waze 集成

    我正在尝试整合我的app with waze http www waze com 有人知道如何调用位智并发送坐标吗 我没有找到任何 API 或其他相关信息 void navigateToLatitude double latitude lo
  • 以编程方式进行排序时检索 ViewController 堆栈

    static func showMenuView parentVC UIViewController let storyboard UIStoryboard name Main bundle nil let resultController
  • 如何在 Cocoa with Core Data 中上传和存储文件?

    我有一个应用程序 我希望能够将文件上传到其中 我可以想象序列化数据 将其放入数组中 然后序列化数组并将其放入核心数据中 但这似乎不太正确 我还可以想象将文件复制到应用程序的支持文件中 获取这些文件的 NSURL 并存储数组或 NSURL 无
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • 启动时运行后台任务

    我正在编写一个 iOS 应用程序 它使用 Dropbox Datastore API 在多个设备之间同步数据 在 Android 上 我可以告诉服务在启动时启动 这使其能够同步 设备关闭时可能发生的任何更改 我无法找到让我的应用程序在 iO
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • Eddystone 信标检测问题

    以下是我使用 iPhone iOS 9 检测 Eddystone 的代码 void viewDidLoad super viewDidLoad if CLLocationManager locationServicesEnabled loc

随机推荐