如何解决SwiftUI小工具:导入的Objective-C标头文件
将Objective-C类(通过桥接标头)导入我的 SwiftUI小部件扩展目标时遇到构建错误。
Objective-C类定义一个接受UILabel参数的方法方法。生成窗口小部件时,在“ UILabel ”上的方法声明中收到错误:“ 期望类型”。我实际上不需要在SwiftUI项目中利用此方法,但这是我确实需要导入的类的一部分。
我尝试了将UIKit框架添加到Widget扩展目标,并尝试了导入UIKit标头在快速桥接文件中。不走运,我收到同样的错误。
我想知道在目标上使用SwiftUI并在导入的Objective-C文件中使用UIKit是否存在不兼容性问题?要允许我的SwiftUI扩展识别UIKit类,我还需要做些其他事情吗?
解决方法
问题不是我的小部件扩展,或与SwiftUI共享UIKit类。我意识到,我的桥接标头已在其他扩展程序中共享(Siri,Watch),这些扩展程序不支持UIKit (或者至少不包括UIKit框架)。将UIKit依赖标头添加到共享桥接标头中会导致这些其他扩展构建失败。
为解决我的问题,我创建了一个与小部件目标 only 关联的第二个桥接头,现在我可以在其中包含依赖UIKit的Objective-C类。 / p>
,是的。因此,您需要在SwiftUI窗口小部件目标中设置“ Objective-C BridgingHeader”,然后将标头中的Objective-C文件导入到SwiftUI类中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。