project-Swift.h编译错误



当我尝试导入自动生成的Project-Swift.h文件时,我遇到了一个问题。

在-Swift.h文件:

    SWIFT_CLASS("_TtC7ProjectName20InviteToComposer")
@interface InviteToComposer : NSObject <MFMessageComposeViewControllerDelegate *>
- (nonnull instancetype)initWithRecipient:(NSArray<NSString *> * _Nonnull)recipient name:(NSString * _Nonnull)name OBJC_DESIGNATED_INITIALIZER;
- (void)messageComposeViewController:(MFMessageComposeViewController * _Nonnull)controller didFinishWithResult:(MessageComposeResult)result;
@end
当尝试编译

时,我从这个类得到两个错误:

"unknown type name 'MFMessageComposeViewControllerDelegate'; did you mean 'MFMessageComposeViewController'?

和"期望的类型"关于"(MessageComposeResult)"

我试着在类和函数名之前包括@nonobjc,这样它就不会在-Swift.h文件中包含它们,但显然你不能这样做一个类和函数本身有错误给我"Type 'InviteToComposer' does not conform to protocol 'MFMessageComposeViewControllerDelegate'"则状态为"protocol is not @objc but requires it."

在你的-swift中添加@protocol MFMessageComposeViewControllerDelegate在你的类声明之前

这是一个苹果"你可能应该使用swift/我们没有足够的关心你来解决它"的事情。

还有一件事我的修复是,每次你清理项目或切换一个构建设备,它会清理代码,你必须再次添加它。

一个可行的解决方案是在objective-c中创建MFMessageComposeViewControllerDelegate的子协议,并从那里引用它。

相关内容

最新更新