2016-07-12 9 views
0

は私が(Objective-Cのクラスからそれを呼び出すようにしようとしているパブリックメソッドコール迅速な方法

class PlayerVC: UIViewController { 
    func retrievePixelBufferToDraw(strongSelf: PlayerVC) -> CVPixelBuffer? { 
    ... 
    return pixelBuffer 
    } 
} 

で迅速なクラスをしたダムが、...

サウンズ免責事項私はObjective-C初心者で、オンラインで回答を見つけることができます。):

PlayerVC* VC = self.playerController; 
CVPixelBufferRef pixelBuffer = [VC retrievePixelBufferToDraw:VC]; 

構文は正しくありません。 (No visible @interface for 'PlayerVC' declares the selector 'retrievePixelBufferToDraw:')私はいくつかの理由など

+1

#import " -SWift.h"メソッド名は 'retrievePixelBufferToDrawWithStrongSelf'になります...ビルド設定の "Objective-C Generated Interface Header Name"フィールドを確認してください – RJE

+0

ありがとうございました。オートコンプリート。 'retrievePixelBufferToDrawWithStrongSelf'でメソッド名とパラメータ名がマージされる理由は分かりますか? – Guig

+1

自動生成されたObjCヘッダーは、そのようなメソッド名を作成します。同じことが他の方法になります。例えば。 ObjCクラスに「initWithName:」と言うメソッドがある場合、func init(名前: – RJE

答えて

2

ブラケティング、コロン、変数名の様々な試みた、答えは次のとおりです。

PlayerVC* VC = self.playerController; 
CVPixelBufferRef pixelBuffer = [VC retrievePixelBufferToDrawWithStrongSelf:VC]; 

retrievePixelBufferToDrawWithStrongSelfオートブリッジから多分、から来ているんアイデアスウィフトと客観的なCの間。それはひどく聞こえる。とにかく..!

+2

'retrievePixelBufferToDraw(strongSelf:PlayerVC)'から来ています – WMios