升级到 Xcode 10 后,无法快速识别 Objective C 类
Posted
技术标签:
【中文标题】升级到 Xcode 10 后,无法快速识别 Objective C 类【英文标题】:Objective C classes cannot be recognized in swift after upgrade to Xcode 10 【发布时间】:2018-09-26 10:19:32 【问题描述】:我有一个由 Swift 4 和 Objective C 开发的 ios 项目,使用 Xcode 9 时一切正常。
XCode 升级到 10.0 后,我的 swift 类无法识别 Objective C 类和库,从而产生错误
'project_name-Swift.h' 文件未找到
和
使用未声明的类型'xxxxx'
后一种错误至少出现在以下几种情况:
系统目标C类(如UIImage、UIView...)
cocoapods 库中的 Objective C 类(如 AFNetworking 2...)
自定义目标 c 类
.h 文件中的#define
变量
我仍在使用 Swift 4(不是 4.2)。尝试清理构建文件夹并删除 DerivedData 并再次构建,这些错误仍然存在。
【问题讨论】:
【参考方案1】:我通过在构建阶段移动其中一个框架来解决问题。
Targets -> Build Phases -> Link Binary With Libraries -> (remove) framework
当查看 Link Binary With Libraries 时,我注意到有些框架的图标颜色较浅(似乎已停用),删除框架并重新构建后,一切正常。
就我而言,我删除了与 Facebook SDK 一起安装的 Bolts 框架。之前,我改为使用 Cocoapods 更新 Facebook SDK,而不是手动将 Facebook SDK 库添加到项目中。
【讨论】:
以上是关于升级到 Xcode 10 后,无法快速识别 Objective C 类的主要内容,如果未能解决你的问题,请参考以下文章