2016-08-09 9 views
2

私はObj-cクラスでスワイプファイルを使用できるようにプロジェクトを設定しましたが、何らかの理由で戻り値の型と完了ブロック。 Objective-CのファイルにObjective-Cの戻り値と補完ブロックを持つスウィフト関数を使用する

@objc class AgentManager : NSObject { 
static let instance = AgentManager() 

// the sharedInstance class method can be reached from ObjC. 
class func sharedInstance() -> AgentManager { 
    return AgentManager.instance 
} 

func fetchAgentInfo(agentID: String, completion:(result: Agent) -> Void) { //...networking code } 

AgentManager *manager = [AgentManager sharedInstance]; 
[manager fetchAgentInfo:@"string" completion:^(Agent *response) { 
    //No visible @interface for 'AgentManger' declares the 
    //selector fetchAgentInfo:completion: 
}]; 

************ソリューション*************:

私はエージェントの構造体を返そうとしていました。 ObjcでSwift構造体を使うことはできません。私はちょうどそれをクラスに変換しました。

ありがとうございました

答えて

0

私は問題が完了のブロック署名にあると考えています。

[self.manager fetchAgentInfo:@"string" completion:^(AgentManager * _Nonnull result) { 

}]; 

また、AgentManagerとAgentの2つのクラスがありますが、私はこれらの2つが同じクラスであり、それは単にタイプミスであると仮定しました。

+0

実際にエージェント構造体を返しています –

+0

これは何が間違っているのかを説明しています。客観的な-cでは迅速な構造体を使用できないと言うのは残念です。代わりにクラスを使用することができます。 – wirrwarr

関連する問題