在Xcode 8中,当遇到任何断点,并且我尝试在Xcode调试器中打印任何对象时,它总是打印"无法解析类型" 。我在互联网上搜索得足够多了。我已检查EditScheme-> Run-> Info-> BuildConfiguration是否设置为' Debug'。构建设置 - >优化级别设置为“无”'。但没有解释为什么会发生这种情况的线索。谁能帮到我这里?提前致谢。
答案 0 :(得分:2)
我遇到了一个纯粹的swift框架类似的问题,该框架没有任何桥接标头,但是SWIFT_INSTALL_OBJC_HEADER
设置为YES
在https://stackoverflow.com/a/51186560/385307
中有更详细的描述将设置更改为NO
后,调试将再次起作用。
答案 1 :(得分:1)
我在Swift项目中遇到了类似的问题,其中包括一个Obj-C框架。我使用
在我的Swift项目中导入了框架import Obj-C-Framework
此外,我还在Swift项目中创建了一个Bridging-Header文件,并使用
包含了Obj-C-Framework头文件。#include <Obj-C-Framework/Obj-C-Framework.h>
这导致Xcode调试器在断点中打印对象时始终显示&#39;无法解析类型&#39; 。删除桥接头中的#include可以解决问题,并在断点中正确打印对象。
TL; DR如果您的swift项目使用Obj-C框架,请确保框架标题不包含在Swift项目的桥接标题中。
答案 2 :(得分:1)
我遇到了同样的问题并且已经解决了。我的项目是OC和Swift的混合项目。我在我的Bridging Header文件中发现了一些导致问题的.h文件导入。当然,.h文件中声明的枚举会导致问题,如下所示:
typedef NS_ENUM(NSInteger,BadgeAlignment) {
AlignmentCenter,
AlignmentLeft,
AlignmentRight,
};
如果我评论代码,一切顺利。
我只是为枚举的每个元素添加一个前缀,问题就解决了。
typedef NS_ENUM(NSInteger,BadgeAlignment) {
BadgeAlignmentCenter,
BadgeAlignmentLeft,
BadgeAlignmentRight,
};
我只是在考虑将.h转换为Swift时是否与Swift中的某些枚举发生冲突。
我仍然感到困惑......