project-Swift.h编译器错误

时间:2016-08-18 16:20:37

标签: objective-c swift bridging-header

当我尝试导入时,我遇到了自动生成的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'?

和&#34;期待一种类型&#34;关于&#34; (MessageComposeResult)&#34;

我尝试在类和函数名称前包含@nonobjc,以便它不会将它们包含在-Swift.h文件中,但显然你不能对类和函数执行此操作本身有错误给了我 "Type 'InviteToComposer' does not conform to protocol 'MFMessageComposeViewControllerDelegate'"然后说明"protocol is not @objc but requires it."

1 个答案:

答案 0 :(得分:1)

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

这是一个苹果“你可能应该使用swift /我们不太关心你解决它”的事情。

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

渗透性解决方法是在objective-c中创建MFMessageComposeViewControllerDelegate的子协议并从那里引用它。