Xcode不小心修改了自带头文件,导致无法编译成功

在iOS开发中误修改UITableView.h导致编译错误"Could not build module UIKit"。尝试清除Xcode缓存无效,通过在Finder中找到并还原头文件内容解决了问题。提醒开发者要谨慎操作,避免类似麻烦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天早晨没有什么工作,恰逢办公室就我自己high,决定打开本本继续开展ios编程学习,还是被自己的见缝插针,勤奋上进的学习态度小小的感动了一下。

就在写的正起劲之时,突然发现无法编译运行程序了,提示”Could not build module UIKit”之类的信息,思来想去,貌似是之前在给一个tableview控件关联类的时候,无意中打开了UITableView的头文件,然后还鬼使神差地在里面加了一句”import ViewController.h”,其实就是不小心修改了系统自带的头文件,导致后面的程序都无法编译运行。

然后就是各种蛋疼的上网查找解决办法的过程,网上很多朋友说找到一个缓存文件夹,然后清除缓存重新编译便可以解决问题,方法如下:

解决方案:删掉下面文件夹的缓存即可(aplle是电脑的用户名)
/Users/aplle/资源库/Developer/Xcode/DerivedData
或者
/Users/aplle/Library/Developer/Xcode/DerivedData

尝试了n次,发现没有效果,可能是删除的方式有问题吧,开着编译器删,关掉编译器删除,先删除再重开编译器,换着花样删,结果还是白忙活。此时已经临近中午,心情跌到谷底。就在这时不情愿地想起了网友说的第二种方法,重装Xcode,想想头就大,还是晚上再试试吧。

人的脑袋是个很奇怪的东西,白天绞尽脑汁也想不到的事儿,晚上吃饱喝足刚坐下来,就想到一个办法:既然是修改了头文件,那我在finder中找到那个头文件,然后把我改的内容改回来,不就解决了吗,这么简单的解决办法,我居然浪费了一上午的时间。

一通翻腾,终于被我找到它:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/
Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/
UIKit.framework/Headers/UITableView.h(我的Xcode版本是7.3.1,其他版本可能会有不同的路径)

打开后果然里面有一句我自己敲进去的代码,想想这也算修改了一回apple的源码,还真是不得不佩服我的破坏力啊。

删掉之后编译运行,果然通过!

经过今天的小问题,发现自己还真是ios开发的小白,菜鸟中的菜鸟啊,ios开发之路任重道远,还需多努力。

总结一下:

  1. 关于网友说的第一种方法,我再次修改了UITableView.h文件的内容,然后清除缓存后,还是不能成功编译,不知道问题在哪里,如果有了解的朋友,请不吝赐教。
  2. 关于第二种方法,有一定的局限性,因为我知道自己修改了哪里,所以找到头文件就可以改回原来的样子。当然,如果不嫌麻烦,可以找一个正确的头文件,与自己的一行一行比对,也不失为一个办法。
  3. 虽说写程序需要我们有瞎捅咕的精神,不过还是要多一些谨慎,要不然还是要给自己带来麻烦的。
  4. 如果有朋友有更好的办法,请您一定留言,希望能在ios学习的道路上找到更多的志同道合的伙伴。

精简版:

不小心修改了编译器自带的头文件怎么办

解决方法:

在finder中找到那个头文件,把你改动的地方改回来。如果忘记改动哪里了,就从网上下个标准无错的头文件替换掉。

如果做改动时能及时发现,也可以撤销。

我的Xcode(版本号:7.3.1)被改动的头文件的路径:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/
Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/
UIKit.framework/Headers/UITableView.h

当然,你路径最后到哪,取决于你改的是哪个头文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值