2016-07-14 7 views
0

私はC + +クラスのラッパーの役割でC + +コードと目的Cクラスを使用します。これまでに開発された部分が機能しました。Swift ViewController、目的のCプロトコル、タイプ 'ViewController'がプロトコル 'MyProtocolDelegate'に準拠していません

@protocol MyProtocolDelegate <NSObject> 
    - (void)updateCount:(int)count; 
@end 
@interface CvVideoCameraWrapper : NSObject 
@property (weak,nonatomic) id <MyProtocolDelegate> delegate; 
    //remaining of my interface 
@end 

Iはに準拠し、追加のViewController他のプロトコルにMyProtocolDelegateを添加SWIFTコードで:

class ViewController: UIViewController, CvVideoCameraDelegate, UITextFieldDelegate, MyProtocolDelegate{ 

    func updateCount(count:Int) 
    { 
     return 
    } 
    override func viewDidLoad() { 
     super.viewDidLoad()   
     self.typedName.delegate = self // this one works 
     self.videoCameraWrapper.delegate = self 
     // remaining of my viewDidLoad 
    } 
     //remaining of my ViewController 
} 

コンパイラはエラーを示し 私はちょうど一つの方法宣言オブジェクティブC、単純なプロトコルを追加しました: タイプ 'ViewController'がプロトコル 'MyProtocolDelegate'に準拠していません

目的型Cで宣言された代理メソッドのシグネチャと、 CとIntは即座に同じですが、迅速で客観的なCとC++のブリッジと他の相互作用が実現することを理解しています このプロトコルの使用に間違いがあることを指摘してください。

+0

にObjC 'int'は、私は信じていスウィフト' Int32'と同等であるを見てみましょう。 – dan

+0

'MyProtocolDelegate'に必要なすべてのメソッドを実装していることを確認してください – chengsam

+0

あなたのプロトコルメソッド宣言でおそらく' NSInteger'を使うべきです。 – AdamPro13

答えて

0

速いタイプのInt32はobj-c intと同等のもの

しかし、あなたは混乱を避けるためにCタイプのエイリアスを使うべきです。それは

func updateCount(count:CInt) 
{ 
    return 
} 

だろうあなたの例で はApple - Interacting with C APIs

関連する問題