当项目中发生更改时,Xcode 如何编译文件?

     2023-02-26     134

关键词:

【中文标题】当项目中发生更改时,Xcode 如何编译文件?【英文标题】:How does Xcode compile files when changes are made in a project? 【发布时间】:2013-05-16 12:39:57 【问题描述】:

我是 iOS 编程和 Xcode 的新手。请帮助我了解 Xcode 是如何编译和运行代码的。

理想情况下,IDE 知道程序中所做的更改,并且在我们下次编译或运行它时,它知道哪些文件需要再次编译。但是,当我尝试在一个项目中添加情节提要时,该项目可以使用一些 ViewController 和 XIB 文件正常工作, 我将视图从现有的 xib 文件移动到情节提要中的 ViewController,并将类的名称更改为 Identity Inspector 中的相应 ViewController,然后删除了 XIB 文件。当我运行程序时,我没有看到任何不同的情况发生。出于好奇,我删除了所有 XIB 文件,然后再次运行程序,但项目仍然运行良好。

最后我删除了项目中存在的所有文件,当提示“发送到垃圾箱”或“删除引用”时,我选择删除引用并再次构建并运行应用程序,但没有问题,它再次运行完美。

之后我关闭了项目并再次从“Finder”打开项目并运行它,最后我得到了 30 多个错误,即使我在 Xcode 中将所有文件添加回项目后也没有解决。

请帮助我了解 Xcode 是如何编译项目的,以及我在将 XIB 文件中的视图移动到项目中的“故事板”时可能做错了什么。

【问题讨论】:

如果你能说明抛出了什么错误会有所帮助。 这些都是链接器错误,解决了 .o 文件中的问题。当我删除了所有文件时,这些就出现了。现在我知道,如果我“清理”一个项目,我就不会遇到这样的问题。但我想知道我将视图转移到 Storyboard 所遵循的过程是否正确。 【参考方案1】:

您的理解是正确的,XCode 应该检测更改并知道何时重建事物,但是,XCode 并不完美,有时会出现错误。您可以在产品菜单下"Clean" 项目来重建它。

你没有说你是否在模拟器上运行。我在添加或删除资源以及在设备上运行时经常遇到问题。要解决这些问题,您可以删除设备上的应用。

重新启动 XCode 也经常可以解决问题。

另外,请确保您拥有最新版本的 XCode。

如果您可以重新创建问题,请考虑提交bug report。

【讨论】:

@MKSingh,Apple 确实快速修复了常见且易于重新创建的错误,但那些罕见的错误仍然存​​在。总是针对最新版本的 XCode 提交错误,否则 Apple 只会回复,“最新版本上还会出现吗?”。 我在模拟器和 iPhone 上都运行过。

如何更改 xcode 项目中文件的位置?

】如何更改xcode项目中文件的位置?【英文标题】:HowcanIchangethelocationoffilesinxcodeproject?【发布时间】:2013-09-2606:08:10【问题描述】:我不小心把一些文件放在了*.xcodeproj文件的同一级别。当我将这些文件移动到Finder中的正确位置... 查看详情

Xcode:如何更改我的项目文件夹名称,而不会出现构建问题?

】Xcode:如何更改我的项目文件夹名称,而不会出现构建问题?【英文标题】:Xcode:HowdoIchangemyprojectfoldersname,withouthavingbuildingproblems?【发布时间】:2011-09-0600:11:33【问题描述】:我想更改我的Xcode项目所在的文件夹名称。但是当... 查看详情

Xcode 在没有任何更改时重建项目

】Xcode在没有任何更改时重建项目【英文标题】:Xcoderebuildsprojectwhennothinghaschanged【发布时间】:2014-12-1215:22:34【问题描述】:在过去的几个月里,我们注意到Xcode似乎在每次我们“运行”时都在重新构建我们的项目,即使没有文... 查看详情

如何在不修改项目文件的情况下更改 Xcode 构建设置?

】如何在不修改项目文件的情况下更改Xcode构建设置?【英文标题】:HowtochangeXcodebuildsetupwithoutmodifyingprojectfiles?【发布时间】:2011-07-2214:10:55【问题描述】:我想知道是否可以在不修改xcode项目的情况下更改编译设置。例如,将-... 查看详情

如何在 XCode 4.5 中更改产品名称?

...时间】:2012-12-0423:29:33【问题描述】:我有一个包含库和项目A的工作区,我想创建一个与A相同的项目B,除了一些小调整。所以我复制了A的整个源文件集并制作了一份副本,将它们重命名为B,然后将B项目添加到工作区中。我为... 查看详情

当特定文件夹中的文件发生更改时触发多分支管道

】当特定文件夹中的文件发生更改时触发多分支管道【英文标题】:Triggeramultibranchpipelinewhenthereisachangeinfilesinspecificfolder【发布时间】:2021-08-0319:48:09【问题描述】:当文件夹中的某些文件被推送到BitBucket时,我想运行多分支管... 查看详情

当 javascript 文件夹外的文件更改时触发 webpacker 编译

...ils应用程序中遇到了webpacker问题。当一些相关的配置文件发生变化时,Webpacker也应该编译,但不会因为它们不在app/javascr 查看详情

Angular:防止资产文件夹发生更改时自动重新编译

...间】:2020-01-1501:50:57【问题描述】:我正在尝试在Angular项目的资产中下载从SpringBoot生成的文件。当我从Angular服务调用SpringAPI时,AngularCLI在资产Angular文件夹中创建文件后重新 查看详情

如果主程序中的值发生更改,如何更改 gui 上项目的颜色

】如果主程序中的值发生更改,如何更改gui上项目的颜色【英文标题】:HowdoIchangethecolourofanitemonmyguiifavalueinthemainprogramchanges【发布时间】:2011-03-0310:52:56【问题描述】:感谢您抽出宝贵时间尝试帮助我-非常感谢。我的问题与在... 查看详情

如何更改iOS文件的路径以显示项目路径

】如何更改iOS文件的路径以显示项目路径【英文标题】:howtochangepathofiOSfiletoshowprojectpath【发布时间】:2014-09-1722:00:16【问题描述】:为了在我的项目中手动包含一些“库”文件,我在xCode中打开了我的项目。然后我在finder中打... 查看详情

如何让 Xcode 不自动打开以前打开的项目

】如何让Xcode不自动打开以前打开的项目【英文标题】:HowtoGetXcodetoNotAutomaticallyOpenPreviouslyOpenedProjects【发布时间】:2011-12-2414:27:20【问题描述】:所以,我从一个旧项目中打开了一个xib文件,它导致了崩溃。那不是问题。问题... 查看详情

您可以在 Xcode 4 中批量更改每个文件的编译器标志吗?

】您可以在Xcode4中批量更改每个文件的编译器标志吗?【英文标题】:Canyoubatchchangeper-filecompilerflagsinXcode4?【发布时间】:2011-04-2405:40:19【问题描述】:我希望能够更改整套文件的编译器标志。从“构建阶段”区域访问每个文件... 查看详情

当对象中的字段发生更改时如何从 v-model 数组中删除对象

】当对象中的字段发生更改时如何从v-model数组中删除对象【英文标题】:Howtoremoveobjectfromv-modelarraywhenfieldintheobjecthaschanged【发布时间】:2020-05-2722:56:44【问题描述】:我已经设置了一个带有复选框输入的vue.js文件,当单击该复... 查看详情

无法更改 Xcode 项目中的文件

】无法更改Xcode项目中的文件【英文标题】:CannotchangefileinXcodeproject【发布时间】:2015-04-2006:35:33【问题描述】:当我启动我的一个Xcode项目时,我会看到该项目的故事板。我可以编辑故事板,我可以在我的设备和模拟器上运行... 查看详情

仅在项目发生更改时添加编译时间戳 (C)

】仅在项目发生更改时添加编译时间戳(C)【英文标题】:AddingacompilationtimestampONLYwhenchangesoccurredintheproject(C)【发布时间】:2012-06-1419:25:49【问题描述】:我目前正在创建一个新的C项目,我遇到了需要用一些数据(包括时间和日期... 查看详情

当磁盘上的文件发生更改时,如何让 Emacs 自动刷新所有缓冲区?

】当磁盘上的文件发生更改时,如何让Emacs自动刷新所有缓冲区?【英文标题】:HowtohaveEmacsauto-refreshallbufferswhenfileshavechangedondisk?【发布时间】:2010-12-0114:55:25【问题描述】:我有一个非emacs全局搜索和替换功能,它使我的磁盘... 查看详情

在xcode中编译ios项目时找不到c++头文件

】在xcode中编译ios项目时找不到c++头文件【英文标题】:c++headerfilenotfoundwhencompilingiosprojectinxcode【发布时间】:2022-01-1709:58:44【问题描述】:当我构建一个iOS项目时,我收到一个错误“\'tuple\'filenotfound”。似乎xcode并没有尝试寻... 查看详情

如何找出当前在 Xcode 中正在编译的文件 [重复]

】如何找出当前在Xcode中正在编译的文件[重复]【英文标题】:HowtofindoutwhichfileisbeeingcompiledcurrentlyinXcode[duplicate]【发布时间】:2013-02-1008:48:08【问题描述】:当XcodeXcode编译时,它会显示compiling28outof68sourcefiles之类的东西我怎样才... 查看详情