修改UIViewController.h后恢复仍报大量UIKit错误,求解决方案
我之前碰到过几乎一模一样的情况!当时手欠临时改了UIViewController.h看细节,改完立刻复原,结果编译直接炸出一堆UIKit相关错误,跟你描述的完全契合。下面是我试过有效的几个解决办法,按顺序试试:
彻底清理项目构建缓存:先试试Xcode的「Clean Build Folder」,快捷键是
Cmd+Shift+K,或者按住Option键点击顶部菜单栏的「Product」,原来的「Clean」会变成「Clean Build Folder」。这个操作能清除Xcode当前项目的构建缓存,很多时候缓存里还留着你修改过头文件的记录,哪怕你复原了也会影响编译。删除Derived Data文件夹:如果Clean之后还是不行,就去删Derived Data——这是Xcode存放所有项目中间编译产物和缓存的地方。路径是
~/Library/Developer/Xcode/DerivedData,找到你当前项目对应的文件夹直接删掉,然后重启Xcode再重新编译。我当时就是靠这个解决的,缓存藏得太深Clean根本清不干净。检查头文件是否完全一致:虽然你说已经恢复了,但说不定不小心留了看不见的改动?比如多了个空格、换行符,或者编码格式变了?可以用
diff命令对比这个文件和其他正常的UIKit头文件(比如同目录下的UIView.h),确保内容100%一致。重新安装Xcode Command Line Tools:有时候系统框架的文件可能因为临时修改出现隐性损坏,运行命令
xcode-select --install重新安装命令行工具,它会修复系统自带的框架文件。检查文件权限:用
ls -l命令查看UIViewController.h的权限,对比同目录下其他UIKit头文件的权限设置,如果权限不一样,用chmod命令调整到相同权限(比如一般是-rw-r--r--),权限异常也可能导致Xcode读取文件出错。
内容的提问来源于stack exchange,提问作者arachide

