に-Swift.hを含めます。 Objective-CでSwiftパブリックAPIにアクセスするには、現在、APIコンシューマは "MyModule-Swift.h"をインポートする必要があります。私はすでに "MyModule.h"というObjective-Cの傘のヘッダを持っています。しかし、 "MyModule.h"のインポートは、Swift APIでは機能しません。私は傘のヘッダーで "MyModule-Swift.h"をインポートしようとしましたが、それを見つけることはできません(私はそれがXcodeによってその場で生成されていると仮定しています)。私は混合スウィフトとObjective-Cプロジェクトを有する傘ヘッダ
APIの消費者は常にスウィフト/ Objective-Cで書かれたパブリックAPIを使用するには、「MyModule.h」をインポートできるように任意の提案は本当に理解されるであろう。
============================================== ========================
を編集してください。質問を正しくフレームする時間がないことをお詫びします。私はMyModule
と呼ばれるフレームワークを持っています。
私はスウィフトを使用して、このクラスに新しい振る舞いを追加したいので、私は拡張子今
extension ABUser {
func swiftWalk()
}
を定義し、ABUser
と呼ばれるObjective-Cのクラスを持っている
@interface ABUser: NSObject
- (void)walk;
@end
、私が望んでいたと言いますObjective-CのアプリからABUser
に定義されたswiftWalk
メソッドにアクセスするために、私は#import <MyModule/MyModule-Swift.h>
なければならないでしょう。 walk
メソッドを使用する場合は、#import <MyModule/MyModule.h>
が機能します。これは、傘のヘッダーMyModule.h
のインポートABUser.h
を想定しています。
私はいつもObjective-Cアプリを#import <MyModule/MyModule.h>
にしていましたが、Objective-CやSwiftのいずれのフレームワークでもAPIが書かれているかどうかは心配する必要はありません。そこで、傘のヘッダーMyModule.h
にMyModule-Swift.h
をインポートしようとしました。しかし、私のObjective-Cアプリケーションはコンパイルしませんでした。確かに、これは、MyModule-Swift.h
がビルドプロセス中にXcodeによってオンザフライで生成されるためです。
編集2:ここでこの問題を再現するサンプルプロジェクトを追加しましたが:https://github.com/priteshshah1983/MyObjectiveCApp
関連するコードはViewController.m
です。ビルドはmaster
ブランチで失敗します。それを動作させるには、working
ブランチをチェックアウトしてください。
「私のやる気は何ですか?あなたは自分自身に正しい答えを与えたので、賞金は引き返すことができません。あなたは何のためにも50ポイントを投げ捨てました...そして、その質問はまだかなり腐っています。 "でも、これはうまくいかなかった"とはどういう意味ですか? – matt
[OK]を、私は正しい答えとして私の答えを収縮した。申し訳ありませんが、私はこれよりも良く説明することはできません。あなたがすでに私に投票したことに気づいた! – pshah
誰かが問題を理解して再現するために必要な実際のコードをすべて表示するだけではどうですか? – matt