Xcode 项目资源组织和结构

2024-01-12

我对 Xcode 比较陌生,困扰我的一件事是,当我添加资源时,它会添加到我的项目目录的顶级目录中。例如,目前我的所有图像都位于顶级目录中,这使事情看起来很混乱。例如,我宁愿有一个images/文件夹,然后是其中的子文件夹,用于存储某些内容的图像,例如tab-bar/图标。这可能吗?或者按照惯例将所有内容都保留在顶级目录中?

有人在#iphonedevfreenode 的频道告诉我一些有关构建过程规则或其他内容的信息,它看起来太复杂了,我认为我不应该打扰,并且考虑到解决方案的复杂性,大多数人只是将内容保留在根目录中。也许事情并没有那么复杂,我只是觉得应该更容易。

例如,我还想为我的视图创建一个子文件夹,例如views/存储我所有的 nib 文件;目前它们都在顶级目录中。我的财产清单也是如此。

如果您能告诉我约定是什么,我将不胜感激,我怀疑它只是将所有内容存储在顶级目录中。我指的是实际的文件系统,而不是简单地在 Xcode 中创建“虚拟文件夹”来组织事物,因为我的项目的顶级目录仍然会是一团糟。如果可以更好地组织事情,我将不胜感激任何关于如何完成它的详细帮助。

我想我听说在最终版本中,整个文件结构被压缩到根目录。我对此不太介意,我只是希望在我从事项目时能够将事情组织起来。我认为这就是“构建规则”的用武之地,但我不确定该怎么做或做什么。


以下是对格雷厄姆建议的更多解释:

  • 创建图像目录
  • 在 Xcode 中创建图像组
  • 右键单击该组并获取信息
  • “选择...”将组的目录设置为您的图像目录

现在,您放入图像组中的任何内容都会自动进入图像目录。如果您从 Xcode、其他项目或 Finder 中拖放,或者通过右键单击图像目录添加新...,情况就是如此。 (这假设您在信息窗格中保留“相对于组”的默认设置。)

这适用于您放入该组中的任何内容(NIB 等)。

For imageNamed:,您只需给出基本名称。

我的建议是保留少量的文件系统目录,并且大部分在 Xcode 中按组进行组织。但我同意,少量的文件系统目录非常有帮助。我将所有源代码放在 Classes 目录中(只是因为 Apple 使用了该名称;我会选择“Sources”或其他内容)。我在顶层还有一个 Resources 目录,通常在该目录下创建图像和音频目录。但除此之外我通常不会创建很多真实的目录。这使事情变得更整洁,但更容易使用 shell 进行 grep 和通配符处理。

除了 shell 工具之外,按组而不是目录进行组织的一大优势是对版本控制系统(如 subversion)的影响。当您突然意识到您的“视图”组太大时,您可以重新组织它,而无需承受移动文件的巨大影响。

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

Xcode 项目资源组织和结构 的相关文章

  • Xcode 10 存档到“其他项目”而不是“MacOS 应用程序”

    在我升级到 Xcode 10 之前 这是完美的 我的应用程序集成了 Quicklook 和 Spotlight 插件 这些插件是单独构建的 然后在构建阶段使用以下设置复制 两个复制文件 Destination Wrapper Subpath
  • 编码杂志[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 退出 Qt 程序的正确方法?

    我应该如何退出 Qt 程序 例如在加载数据文件时 发现文件损坏 并且用户需要退出该应用程序或重新启动数据文件 我是不是该 call exit EXIT FAILURE call QApplication quit call QCoreApp
  • 使用 Interface Builder 创建的自定义视图在其他视图中调用时不会呈现

    我有一个用于主窗口的 xib 并通过以下步骤创建了一个自定义视图 创建一个新类 继承自NSView MyView h import
  • 如何清除代码中的 NSLog 输出?

    有没有办法清除代码中的控制台输出 thanks 我喜欢的快捷方式 Simply USE K Keyboard Shortcut when you want to clear the NSLOG Data
  • ReactNative - 未处理的 JS 异常:SyntaxError

    当我尝试在 iOS 8 上启动 RUN 应用程序时 出现这个奇怪的错误 Unhandled JS Exception SyntaxError仅此而已 不再有更多信息 有any1偶然发现这个问题吗 在 iOs 9 上应用程序运行正常 x代码版
  • 删除派生数据文件夹后,Xcode 不断重新创建派生数据文件夹

    自动完成功能在 Xcode 6 中不再起作用 我四处搜索 发现删除派生数据文件夹可以解决此问题 每次我删除它时 它都会回来 然后就不会再自动完成了 有什么建议么 Thanks 没关系 我解决了这个问题 我没有声明需要在类内的方法中使用的变量
  • 对成员“buildBlock()”的引用不明确

    我一直在尝试使用 Swift UI 为 iOS 13 制作一个应用程序 但我不断收到这个奇怪的错误 对成员 buildBlock 的引用不明确 无论我做什么 错误都不会消失 我尝试一次对代码段进行注释 以查看哪一部分可能导致了问题 但唯一有
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • 如何将iPhone/iPad应用程序更改为仅iPhone?

    我有点愚蠢 将我的应用程序构建为同时针对 iPhone 和 iPad 而实际上它应该只针对 iPhone 如何更改设置以使构建仅适用于 iPhone 我实际上已经完成了应用程序的编码并准备提交它 所以希望这只是更改一些晦涩的项目设置的情况
  • 如何访问android库项目中的资源

    我正在构建一个 android 库项目 它内部需要一些静态资源 图像 xml 等 然后我想知道我可以把这些资源放在哪里以及如何访问它们 既然我把资源放到了assets文件夹 我使用 AssetManager 来访问资源 public cla
  • 超类与类SpecificationPolicy不匹配

    我得到了一个superclass mismatch for class SpecificationPolicy尝试安装或升级某些brew 软件包时出错 例如 更新安装 supabase CLI 时 brew install supabase
  • 通过 Instruments 使用 UIAutomation 操作 iphone 时,什么是 UIATargetHasGoneAWOLException。

    我正在使用 UIAutomation 通过 Xcode 中的 Instruments 在 iPhone 上执行某些操作 但遇到了一个奇怪的异常 UIATargetHasGoneAWOLException 有人知道这个异常是什么意思吗 我发现
  • 在 Android 中存储和访问 XML 的最佳方式是什么?

    虽然我意识到资源本身是在 XML 文件中定义的 但如果我有一个我希望使用的自己类型的 XML 文件 我是否应该将它们存储在 res xml 中 有没有更好的方法来做到这一点 例如使用资产 然后将它们加载为二进制文件以供另一个 XML 库解析
  • 我可以更改键盘方向吗?

    例如我用这段代码关闭自动旋转 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation return NO BOOL sh
  • 相当于 Interface Builder 中 UIButton 的动态类型“自动调整字体”设置?

    UILabel 有一个Dynamic Type Automatically Adjusts FontInterface Builder 属性检查器中的复选框 Interface Builder 中是否有等效项用于自动调整 UIButton
  • 如何在 ios 7 上更改重新排序控制图像

    我正在寻找一种更改重新排序控件图像和大小的方法 我使用此代码来更改重新排序图像 void tableView UITableView tableView willDisplayCell UITableViewCell cell forRow
  • 如何快速更改按钮图像?

    我正在开发一个有按钮的应用程序 该按钮没有文本 图像或背景 所以我想做的就是在viewDidLoad函数中给它一个图像 这就是我所拥有的 IBOutlet var tapButton UIButton override func viewD
  • 无法转换“UINavigationController”类型的值

    我正在为我的应用程序实现一个搜索界面 因此基本上我会将搜索关键字从一个 ViewController 传递到另一个 ViewController 我已经多次进行过这种类型的参数传递 但这次似乎有些奇怪 目标 ViewController 嵌
  • 如何处理 Xcode“嵌入应用程序扩展”构建阶段

    通过添加新目标创建 共享扩展 时 Xcode 在应用程序目标设置的应用程序 构建阶段 选项卡中添加名为 嵌入应用程序扩展 的构建阶段 可以删除此阶段 但如果您尝试通过按左上角的 来添加它 您会发现可用选项中未列出 嵌入应用程序扩展 为什么会

随机推荐

  • ExtJS 4 关联和 store.save()

    我正在使用 ExtJS 4 并且有一个定义了关联 hasMany 的模型 ModelA gt hasMany gt ModelB 我使用 GridA 显示来自 ModelA 的数据 单击 GridA 中的记录时 我使用 rowSelect
  • 使用jquery进行反应以滑动切换

    我正在尝试通过制作带有可折叠项目的菜单来学习一些 React 我使用 jQuery 来实现它的 SlideToggle 功能 但我无法让它正常工作 反应代码的相关部分是这样的 var CollapsableMenuItem React cr
  • 在react-native-web中使用flex布局复制/粘贴

    我有一个通过 React Native 和 React Native Web 在本机和 Web 上运行的应用程序 一个屏幕包含一个带有自定义项目符号的列表 如下图所示 尽管文本通常会长到多行 问题是 当您复制 粘贴 至少在网络上 时 项目符
  • jquery 承诺的延迟

    我找不到delay or wait函数为jQuery承诺 我在 SO 上找到了一项功能 使用 jQuery Deferred 避免嵌套 setTimeout 回调 https stackoverflow com q 17983331 104
  • 用户如何在客户端下载文件(Google Web Toolkit)

    我正在使用 GWT Google Web Toolkit 制作一个网站 我需要向用户显示一个表格 并让用户下载表格的内容 在客户端 用户按下 下载 按钮时如何下载文件 下载 按钮有一个onClick 听众 并且客户端类扩展Composite
  • 外部声明中的警告

    include
  • Scala 有没有通用的记忆方法?

    我想记住这一点 def fib n Int if n lt 1 1 else fib n 1 fib n 2 println fib 100 times out 所以我写了这个 令人惊讶的是 它编译并工作了 我很惊讶 因为fib在其声明中引
  • 使用 PHP shell_exec() 循环:使用 php for() 还是 bash for-do-done?

    假设我想执行命令mycommand使用 PHPshell exec 10倍 我应该做一个 bash 循环吗 shell exec for i in 1 10 do mycommand i done 或者更确切地说是一个 PHP 循环 for
  • 如何从主应用程序访问 Rails Engines 方法?

    我正在尝试使用 Spree Core 引擎中定义的 current order 方法 https github com spree spree blob master core lib spree core current order rb
  • Symfony2 Doctrine2 后坚持关联

    有没有办法在 symfony2 中接收关联字段的 Doctrine 生命周期事件 http docs doctrine project org projects doctrine orm en 2 0 x reference events
  • phpmyadmin 3.4.0 ERD 转 PDF

    我可以使用 Designer 工具在 phpmyadmin 3 4 0 中创建 ERD 但如何将其导出为 PDF 我可以看到 导入 导出 PDF 模式的坐标 按钮 但看不到它的作用 也看不到如何获取我的 ERD 的 PDF 提前致谢 你已经
  • 将 AutoIT 与 Selenium 结合使用

    感谢您回答我之前的问题 但随着一个问题的解决 显然又发现了另一个问题 与Flash游戏本身的交互现在是问题所在 我尝试研究如何在 Selenium 中做到这一点 但无法完成 我见过 FlashSelenium Sikuli 和 AutoIT
  • Go 中的 switch 和 select 有什么区别?

    有什么区别吗switch and select in Go 除了一个人接受争论而另一个人不接受这一事实之外 A select仅与通道一起使用 Example https gobyexample com select A switch与具体类
  • 用于获取前一个同级的 CSS 选择器[重复]

    这个问题在这里已经有答案了 有没有办法使用纯 CSS 3 来选择具有特定类的元素的前一个同级元素 i e html div div div div div div div div css box1 some styling box2 som
  • std::引用向量

    我有这样的问题 我有课Foo 如果有这个类的一些对象 Foo a 我需要将此对象放入两个不同的向量 std vector
  • DisplayTag 导出和链接

    我正在使用显示标签库 http www displaytag org1 2 导出时所有链接都导出为文本 如何从导出中删除链接 您可以将 display column 标记上的媒体属性设置为 html 以便仅在 JSP 上显示该列 而不在导出
  • Files.walk(),计算总大小

    我正在尝试计算光盘上文件的大小 在 java 7 中 这可以使用文件 walkFileTree http docs oracle com javase 8 docs api java nio file Files html walkFile
  • Selenium Webdriver:在文本字段中输入文本

    当我在文本字段中输入文本时 它会被删除 这是代码 String barcode 0000000047166 WebElement element enter driver findElement By xpath id div barcod
  • 从包含透明像素的图像创建自定义 JButton

    阅读编辑 2 了解我实际上缺少什么才能使其正常工作 我目前正在尝试使用在 Photoshop 中创建的具有 alpha 参数的图像来创建一些自定义 JButton 到目前为止 重写 Paint 方法来绘制图像已经起作用 因为绘制的按钮显示了
  • Xcode 项目资源组织和结构

    我对 Xcode 比较陌生 困扰我的一件事是 当我添加资源时 它会添加到我的项目目录的顶级目录中 例如 目前我的所有图像都位于顶级目录中 这使事情看起来很混乱 例如 我宁愿有一个images 文件夹 然后是其中的子文件夹 用于存储某些内容的