2016-08-18 20 views
0

インポート時に自動生成されたProject-Swift.hファイルに問題があります。project-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 

コンパイルしようとしたとき、私はこのクラスの2つのエラーを取得:

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

をして(MessageComposeResult)」に関しては "タイプを期待" -Swift.hファイルで

"

@nonobjcをクラス名と関数名の前に含めて、-Swift.hファイルに含めないようにしようとしましたが、明らかにクラスaにはできませんNDエラーが私に "Type 'InviteToComposer' does not conform to protocol 'MFMessageComposeViewControllerDelegate'"を与えた関数自体は、あなたのクラス宣言の前に@protocol MFMessageComposeViewControllerDelegateを追加するには、-swiftで"protocol is not @objc but requires it."

+0

[スイフトエラー: "SKScene '、スーパークラス"のインターフェイス宣言が見つかりません](http://stackoverflow.com/questions/33809938/swift-error-cannot-find-interface-declaration-for -skscene-superclass-of)である。 swiftcは '@import MessageUI;'を-Swift.hに追加できません。 –

+0

ちょっとブライアン、私はそのリンクをチェックアウトしましたが、私がSpriteKitをインポートしたときに、彼らは何もしなかったと言いました。何か案は?あなたが私のブリッジヘッダーにメッセージをインポートすべきだと言っていましたか?私のことを明確にする心? –

+0

ブリッジヘッダーに不足しているフレームワークをインポートする必要があります。あなたの場合、それは '@import MessageUI;'です。 –

答えて

0

を述べています。

これはリンゴです。「おそらく、あなたはすばやく使用しているはずです/私たちはそれを修正するために十分気にしません」。

また、私の修正では、プロジェクトをクリーンアップするか、ビルドデバイスを切り替えるたびにコードがクリアされ、再度追加する必要があります。

浸透剤の回避策は、objective-cのMFMessageComposeViewControllerDelegateのサブプロトコルを作成し、そこから参照することです。