当我尝试导入时,我遇到了自动生成的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."
答案 0 :(得分:1)
在你的-swift中,在你的类声明之前添加@protocol MFMessageComposeViewControllerDelegate。
这是一个苹果“你可能应该使用swift /我们不太关心你解决它”的事情。
我修复的另一件事是,每次清理项目或切换构建设备时,它都会清除代码,你必须再次添加它。
渗透性解决方法是在objective-c中创建MFMessageComposeViewControllerDelegate的子协议并从那里引用它。