我正在做一个项目,到现在为止,尽管乱七八糟,但还算正常。今天,不管你信不信,我已经把它更新到Swift 5了。
这个项目有iOS和tvOS的目标,以及框架、测试和顶自我的扩展。这个项目也是用Objective-C开始的,这些年已经变成了90%的Swift。
我不知道在什么时候出了问题,但在编译时,我的所有top self扩展(大部分是所有tvOS Targets)都得到了以下错误。
我也找到了类似的问题,但我不明白是怎么回事。
有什么想法吗?
你可能缺少一个 import StoreKit
在定义IAPHelper的Swift文件中。有时这个会被顺便导入,Swift不一定需要它,但是Swift桥接头需要。
最终你需要确保有一个ObjC的 @import StoreKit;
在这行代码之前被评估。
首先,我要感谢Rob的提示。我希望他能得到积分!
用提供的提示排除故障后。
我还看到"...-Swift.h "只在我的"...Topself "目标的Build设置中被声明。我仍然不知道为什么,因为我认为整个项目仍然有ObjC依赖...... 对于这个挑战,我还是很陌生。
此外,如果我展开错误,我可以看到在试图找到"...-Swift.h "文件时出现了某种错误。
这时,我想起了我使用的是cocoapods(我不喜欢你,你不喜欢我的关系),我讨厌看到"...覆盖启用模块(C - Objective-C)"的警告,所以我把它设置为整个项目的默认值。
原来,对于所有的"...TopSelf "目标,默认值是NO。
通过将 "重写启用模块(C - Objective-C)"改为YES,清理并构建,一切又开始工作了。