cocoapods库引用图片资源的全流程(超详细)

目录

​​​​​​​前言

1.创建私有 Pod 库

1.选择语言

2.是否使用示例工程

3.选择测试框架

4.是否包含View-based Testing

5.选择代码托管平台

2.配置私有库

2.1 进入项目目录

2.2 修改 .podspec 文件

3.添加图片资源

4.本地测试

5. 推送代码到 GitHub

6. 添加私有仓库

7. 在主工程中使用

8.源代码


前言

        我们在开发过程中,常常会使用第三方库或者使用cocoapods创建的自己的私有库,有时候我们需要用到一些图片资源,今天这个教程从创建开始展示下cocoapods私有库引用私有库的完整流程。

1.创建私有 Pod 库

1.1 创建 Pod 库          

        首先我们在自己的电脑上选择一个目录,然后使用CocoaPods 的 pod lib create 命令创建一个新的 Pod 库,具体的操作过程如下:

        以笔者的电脑为例,我想在桌面上创建一个cocoapods私有库,首先进入终端,cd 到桌面目录:

cd desktop

        然后通过下面的命令创建一个cocoapods私有库,例如我要创建的私有库的名称为MyPrivatePod:

pod lib create MyPrivatePod

         其中 MyPrivatePod 是你的私有库名称,可以替换为你的实际项目名称。

        运行 pod lib create MyPrivatePod 后,会有几个交互式的选择项,主要用于配置你的 Pod 库。以下是每个选项的具体含义:

1.选择语言

Which language do you want to use? [ ObjC / Swift ]

ObjC:使用 Objective-C 创建 Pod 库(.h/.m 文件)。

Swift:使用 Swift 创建 Pod 库(.swift 文件)。

2.是否使用示例工程

Would you like to include a demo application with your library? [ Yes / No ]

Yes:会在 Example/ 目录下创建一个示例 App(基于 CocoaPods),方便你测试 Pod。

No:不创建示例 App。

3.选择测试框架

Which testing frameworks will you use? [ Quick / None ]

Quick:使用 Quick/Nimble 作为测试框架(适用于 Swift)。

None:不使用测试框架。

4.是否包含View-based Testing

Would you like to do view-based testing? [ Yes / No ]

Yes:如果你的 Pod 涉及 UI 组件(如 UIView),选择 Yes 以启用 UI 测试。

No:如果你的 Pod 只是数据处理或工具类,选择 No。

5.选择代码托管平台

What is your class prefix?

(可选)输入一个类前缀,例如 IFLY,适用于 Objective-C,避免类名冲突(Swift 可以忽略)。

最终生成的目录结构

MyPrivatePod/
│── Example/               # 示例 App(如果选择 Yes)
│── MyPrivatePod/          # 你的 Pod 代码目录
│── MyPrivatePod.podspec   # Pod 规范文件
│── README.md              # 说明文档
│── LICENSE                # 开源协议(可选)
│── .gitignore             # Git 忽略规则
│── .travis.yml            # CI 配置(可选)
└── Tests/                 # 测试代码(如果选择 Yes)

        如果你要创建 私有 Pod,一般建议选择:

        • ObjC(如果是 Objective-C)或 Swift

        • Yes(包含示例项目)

        • None(不使用 Quick)

        • No(如果不是 UI 组件,不启用 View 测试)

        • 类前缀可以根据公司或个人习惯设置,例如 IFLY。

创建过程中,你可以选择 Swift 或 Objective-C,然后按照提示完成初始化。

2.配置私有库

2.1 进入项目目录

cd MyPrivatePod

2.2 修改 .podspec 文件

打开 MyPrivatePod.podspec,修改 s.source 和 s.resource_bundles 以支持图片资源:

Pod::Spec.new do |s|
  s.name             = 'MyPrivatePod'
  s.version          = '0.1.0'
  s.summary          = 'A private CocoaPods library with image resources.'
  s.description      = 'This is a private CocoaPods library that contains images and other assets.'
  s.homepage         = 'https://github.com/yourusername/MyPrivatePod'
  s.license          = { :type => 'MIT', :file => 'LICENSE' }
  s.author           = { 'Your Name' => 'your.email@example.com' }
  s.source           = { :git => 'https://github.com/yourusername/MyPrivatePod.git', :tag => s.version.to_s }
  s.ios.deployment_target = '10.0'
  s.source_files = 'MyPrivatePod/Classes/**/*'
  
  # 配置资源文件
  s.resource_bundles = {
    'MyPrivatePod' => ['MyPrivatePod/Assets/*.png']
  }

end

        其中:

        • s.resource_bundles 允许你将图片资源封装到 bundle 中,避免资源文件污染主工程。

        • 资源文件应存放在 MyPrivatePod/Assets 目录下。

3.添加图片资源

      把我们使用的图片添加到Assets文件夹中。      

      添加之后的目录如下:

        

图1.在Assets中增加图片

4.本地测试

        我们修改下我们的代码,实现切换暗黑模式和白天模式的时候,更换背景颜色和标题颜色。

图2.切换背景颜色

        在 Example 目录中,执行:

pod install

然后在示例项目中,使用如下代码加载图片:

    open override func rt_customBackItem(withTarget target: Any!, action: Selector!) -> UIBarButtonItem! {
        let button = UIButton(type: .custom)

        // 获取当前的用户界面风格
        let style = self.traitCollection.userInterfaceStyle
        let imageName = (style == .dark) ? "back_button_dark" : "back_button_light"

        // 获取资源 Bundle
        let bundle = Bundle(for: IFLYBaseVC.self)
        guard let resourceBundleURL = bundle.url(forResource: "MyPrivatePod", withExtension: "bundle"),
              let resourceBundle = Bundle(url: resourceBundleURL) else {
            print("⚠️ 未找到 MyPrivatePod.bundle,在 Framework Bundle 中查找失败")
            return nil
        }

        // 从资源 Bundle 加载图片
        let image = UIImage(named: imageName, in: resourceBundle, compatibleWith: self.traitCollection)

        if let image = image {
            print("✅ 成功加载图片:\(imageName)")
            button.setImage(image, for: .normal)
        } else {
            print("❌ 无法加载图片:\(imageName)(请检查 MyPrivatePod.bundle 是否正确包含该资源)")
        }

        button.addTarget(target, action: action, for: .touchUpInside)
        button.sizeToFit()

        return UIBarButtonItem(customView: button)
    }

5. 推送代码到 GitHub

        这里我们要有一个远程的仓库,如果没有你可以自己创建一个。我这里是使用Github创建的仓库,你可以根据自己的需要创建自己的私有远程仓库(gitee,gitlab等)。

git init
git add .
git commit -m "Initial commit"
git tag 0.0.1
git remote add origin https://github.com/iFlyCai/MyPrivatePod.git
git push origin master --tags

6. 添加私有仓库

        如果你还没有私有 Pod 仓库,可以创建一个:

pod repo add my-private-repo https://github.com/yourusername/MyPrivatePods.git

        然后提交 podspec:

pod repo push my-private-repo MyPrivatePod.podspec

7. 在主工程中使用

在 Podfile 中添加:

source 'https://github.com/yourusername/MyPrivatePods.git'
pod 'MyPrivatePod', '~> 0.1.0'

然后执行:

pod install

这样,你的私有库就包含了图片资源,并可以在主工程中使用了! 🚀

8.源代码

        视频中的源代码在这里

内容概要:本文详细探讨了基于樽海鞘算法(SSA)优化的极限学习机(ELM)在回归预测任务中的应用,并与传统的BP神经网络、广义回归神经网络(GRNN)以及未优化的ELM进行了性能对比。首先介绍了ELM的基本原理,即通过随机生成输入层与隐藏层之间的连接权重及阈值,仅需计算输出权重即可快速完成训练。接着阐述了SSA的工作机制,利用樽海鞘群体觅食行为优化ELM的输入权重和隐藏层阈值,从而提高模型性能。随后分别给出了BP、GRNN、ELM和SSA-ELM的具体实现代码,并通过波士顿房价数据集和其他工业数据集验证了各模型的表现。结果显示,SSA-ELM在预测精度方面显著优于其他三种方法,尽管其训练时间较长,但在实际应用中仍具有明显优势。 适合人群:对机器学习尤其是回归预测感兴趣的科研人员和技术开发者,特别是那些希望深入了解ELM及其优化方法的人。 使用场景及目标:适用于需要高效、高精度回归预测的应用场景,如金融建模、工业数据分析等。主要目标是提供一种更为有效的回归预测解决方案,尤其是在处理大规模数据集时能够保持较高的预测精度。 其他说明:文中提供了详细的代码示例和性能对比图表,帮助读者更好地理解和复现实验结果。同时提醒使用者注意SSA参数的选择对模型性能的影响,建议进行参数敏感性分析以获得最佳效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我叫柱子哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值