从 mainBundle 加载

2023-12-30

在一些流行的开源 swift 项目中。我注意到以下方法用于从主包加载文件。

@objc class TestClass: NSObject { }

let bundle = NSBundle(forClass: TestClass.self)
let path = bundle.pathForResource(filename, ofType: "json")

我们也可以使用这种方法。

let path = NSBundle.mainBundle().pathForResource(filename, ofType: "json")

为什么有人会选择第一种方法而不是第二种?


这将返回包含以下内容的包TestClass class:

NSBundle(forClass: TestClass.self)

虽然这会返回应用程序的主包:

NSBundle.mainBundle()

如果您从应用程序代码中执行此代码,它将始终返回您的主包。但如果该类包含在不同的库或框架中,它将返回包含它的包。

例如,CocoaPods 中的所有 Swift 库都是使用动态框架集成的,并且它们部署在主包内的不同包中。因此所有框架都必须使用嵌入式捆绑包来访问其资源。

我建议使用第一种方法(NSBundle(forClass:)方法)以提高代码的可移植性。创建动态框架时需要它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 mainBundle 加载 的相关文章

  • 如何将 Android 应用程序添加到已在 iOS 应用程序中使用的现有 Firebase 项目?

    我一直在我的 iOS 应用程序中使用 Firebase 项目 我现在想开始为 Android 应用程序使用相同的 Firebase 项目及其所有数据库和存储 在您的应用程序下Overview菜单 你应该按添加另一个应用程序并选择Androi
  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • supportedInterfaceOrientations 方法不会重写其超类中的任何方法

    在 UIViewController 中 这段代码 public override func supportedInterfaceOrientations gt UIInterfaceOrientationMask if let mainC
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • Swift:Tableview 在导航栏下方滚动但在状态栏上方滚动?

    我使用以下技巧隐藏了导航栏的阴影 self navigationController navigationBar setBackgroundImage UIImage for default self navigationControlle
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • Apple 由于崩溃而拒绝了我的应用程序,无法重现它

    我刚刚上传了一个应用程序到应用程序商店 它是为ios 7开发的 他们拒绝了该应用程序 因为我无法重现崩溃 他们向我发送了这份崩溃报告 Exception Type EXC BAD ACCESS SIGSEGV Exception Subty
  • 无法在 xcode 8 beta 6 上编译 AWS CustomIdentityProvider

    我在 iOS 应用程序中使用 Amazon Cognito 和 Facebook 登录 直到 beta 5 为止此代码从这个SO线程 https stackoverflow com questions 37597388 aws cognit
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • 使用javascript以编程方式触发iOS safari中的复制菜单?

    我正在尝试实现一种用户友好的方式 将一些文本从文本输入字段复制到 iOS Safari 上的剪贴板 我知道无法在这个平台上以编程方式完成此操作 但我希望能够尽可能地指导用户体验 在 iOS Safari 上 当用户手动突出显示某些文本时 会
  • SDK 和 iOS 部署目标。

    我使用最新的 SDK 4 1 构建项目并设置 iOS 部署目标 3 0 如果我使用4 0 sdk的某些方法 我可以在真正的iPhone 3 0上运行我的项目吗 您只能在 OS 3 设备上运行您的项目 如果有条件地编码围绕您想要使用的 OS
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • UIScrollView 与 UITabBarController 切断

    我有一个 UIScrollView 我将其放置在视图中 界面生成器文档 xib m h 但是 UIScrollView 的下半部分被剪切 并且由于我有一个 UITabBarController 而没有显示其下半部分 我在 appdelega
  • iOS 有 INTERNET 权限吗?

    我在 iOS 设备上的 flutter dio 包上遇到了一个奇怪的问题 我编写了一个向 url 发送 GET 请求的应用程序 Android 上一切正常 但 iOS 上的请求似乎无法通过 没有发生任何错误 什么也没有 我在 Android
  • Swift 中通过可选绑定进行安全(边界检查)数组查找?

    如果我在 Swift 中有一个数组 并尝试访问超出范围的索引 则会出现一个不足为奇的运行时错误 var str Apple Banana Coconut str 0 Apple str 3 EXC BAD INSTRUCTION 但是 我会
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • TestFlight 安装的应用程序因 Swift 包管理器依赖项而崩溃

    我们已经迁移了一些 CocoaPod 依赖项 以便在 Xcode 11 中使用 Swift Package Manager 进行构建和链接 但是 每当我们将应用程序提交到 AppStore Connect 并使用 TestFlight 进行

随机推荐

  • 如何使用 EJS 模板提供 Webpack 捆绑包?

    我正在尝试使用 Express 和 EJS 组合一个基本的全栈应用程序 并使用 Webpack 捆绑我的静态资产 我遇到的困境之一是 Express 中的不同路线使用 EJS 返回服务器端构建的 HTML 但我无法弄清楚如何将这些模板连接到
  • 使用画布导出图像

    我正在创建一个应用程序 仅基于 HTML CSS 和 jQuery 在其中我将创建一个基于图层的图像 只是一堆彼此之上的 div 然后我需要将其导出 以便用户可以下载最终版本为 JPG 或 PNG 有什么办法可以导出画布内容作为可下载的图像
  • SQL查询,每组选择5个最新的

    我有这张桌子 CREATE TABLE codes id int 11 unsigned NOT NULL AUTO INCREMENT language id int 11 unsigned NOT NULL title varchar
  • 加载片段时显示加载微调器

    我开发了一个基于片段的应用程序 我有一个带有按钮的菜单片段 这些按钮每个都会打开一个新片段 替换最后一个片段 问题是 某些片段需要一段时间才能打开 因为它会调用一些异步任务并填充一些列表视图 因此 当我按下菜单片段中的按钮时 它会保持冻结
  • 如何正确读取csv中格​​式错误的字符串

    在 csv 中 对于列 字符串中存在歧义 正因为如此 我得到6列表中的值而不是5值作为输出 Code import csv csv data csv reader file test csv for row in csv data prin
  • 亚马逊AWS拒绝许可

    我正在尝试使用 AWS 凭证文件连接到 amazon s3 为此我做了以下操作 我创造了credentials ini文件于 aws credentials 它有有效的AWSAccessKeyId and AWSSecretKey defa
  • 'UnauthorizedAccessException' - 'Global\.net clr 网络'

    我正在用户 Guest 下测试我的应用程序 它因以下错误而崩溃 UnauthorizedAccessException Global net clr 网络 现在 我知道我可以编辑计算机上的安全策略 以允许信任来宾下运行的 CLR 代码 但在
  • 冒号与数字垂直对齐

    我想创建如下内容 我创建了这个例子 https codepen io anon pen bvOPGE https codepen io anon pen bvOPGE 与 HTML ul li span 30 span days li li
  • 为什么场景大纲在 VS 2012 测试资源管理器中显示为“外部”?

    我有一个场景大纲 也称为场景模板 我希望使用 VS 2012 的测试资源管理器列出我的测试 默认测试分组是通过 项目 名称完成的 如果我坚持使用它 来自场景大纲的测试将位于 外部 组中 而不是在我的项目组下 这是为什么 有解决方案 解决方法
  • 如何在单个 pdf 单元格中添加两行?

    我正在生成条形码 现在我想将学生代码插入条形码标签下 我该怎么做 我的代码是 foreach GridViewRow row in grdBarcode Rows DataList dl DataList row FindControl d
  • 内存:在表中存储多个补丁的补丁变量

    我正在创建特定于海龟的表 在其中存储补丁坐标 模拟年份 全局变量根据刻度数设置为 1 2 或 3 以及表示可用资源的补丁变量 我已经成功地编写了一个表的代码 该表包含当前补丁的这些值 但我一直试图对其进行缩放 以便海龟在每个时间步都为其所有
  • scala:如何建模基本的父子关系

    我有一个包含多种产品的品牌类 在产品类别中 我想引用该品牌 如下所示 case class Brand val name String val products List Product case class Product val nam
  • Oauth2 Spring 中的更改响应

    你好 我已经在这个论坛上发布了这个问题 我也发在这里 以便有更多机会得到回复 http forum spring io forum spring projects security oauth 745627 response of oaut
  • 子视图显示错误

    我做了一个项目并实施了文件夹项目 https github com jwilling JWFolders现在我已经设置了一个子视图 它显示在文件夹上方 如图所示 弹出窗口上有一个图像 我想这样做 如果我点击该图像 将显示带有整个图像的新控制
  • 在webots中使用opencv的“imshow”绘制图像

    嗨 我在 webots 中使用 opencv 我想绘制图像 这是控制器 include
  • 关于如何抓取 __doPostBack('...'); 后面的页面有什么想法吗?

    我正在研究这个 php 基础抓取器 爬虫 它工作正常 直到它获得 net 生成的 Herf 链接 doPostBack 知道如何处理这个并抓取这些链接后面的页面吗 不要尝试自动单击 JavaScript 按钮 这需要 PHP 中的其他库 而
  • 当maven说“在MyRepo的更新间隔过去之前不会重新尝试解析”时,该间隔在哪里指定?

    使用 Maven 我偶尔会遇到来自某些 3rd 方存储库的工件 但我尚未构建或包含在我的存储库中 我将从 Maven 客户端收到一条错误消息 指出找不到工件 找不到 org jfrog maven annomojo maven plugin
  • Android 中使用 GPS 进行虚假定位

    您好 我正在开发一个用于设置坐标 纬度和经度 的应用程序 它必须显示我在该坐标处的位置 它类似于位置欺骗 http www androidzoom com android applications tools location spoofe
  • SOAP 请求和响应使用 libcurl - C 读取文件或写入文件

    我正在尝试从 xml 文件发送 SOAP 请求并发送到 SOAP 服务 然后使用 libcurl 读取响应并将其保存到文件中 xml 文件中的请求示例如下
  • 从 mainBundle 加载

    在一些流行的开源 swift 项目中 我注意到以下方法用于从主包加载文件 objc class TestClass NSObject let bundle NSBundle forClass TestClass self let path