2017-11-05 6 views
1

Objective-Cで宣言されたメソッドとSwiftに橋渡しされたメソッドを呼び出す際にいくつかの問題があります。私は問題のメソッドのすぐ隣にvoidメソッドを作成し、それを呼び出すことができるので、メソッドのパラメータをブリッジする方法と関係があります。SwiftのObjective-Cメソッドのパラメータ

- (void)foo; 

- (NSArray *)fetchProductHistoryForProduct:(Product *)product 
           forCustomer:(Customer *)customer 
            forField:(Field *)field 
            forRange:(DatePickerRange *)range 
           inContext:(CPSPersistenceController *)context; 

はその後スウィフトファイルに私はこのように、それぞれを呼び出しています:

modelUtil.foo() 

let result = modelUtil.fetchProductHistoryForProduct(product, forCustomer: nil, forField: nil, forRange: nil, inContext: nil) 

スウィフトは

はあなたでした "タイプの値 'ModelUtilが' いいえメンバー 'fetchProductHistoryforProduct'を持っていない" 不平を言います私が間違っていることを教えてください。

答えて

1

エディタウィンドウの左上隅から目的のcファイルの生成されたインターフェイスを確認できます。生成されたインターフェイスは、ObjCファイルのSwiftヘッダファイルのようなもので、メソッドの正確な名前を教えてください。また、パラメータタイプを含むすべてのファイルもブリッジヘッダーに追加されていることを確認してください。

1

Xcodeオートコンプリートを使用して、呼び出しシーケンスを見つけることができます。この場合、forProduct:は最初のパラメータのラベルになります。

let result = modelUtil.fetchProductHistory(forProduct: product, forCustomer: nil, forField: nil, forRange: nil, inContext: nil) 
関連する問題