2016-03-21 9 views
1

PDFファイルを解析しようとしています。私が理解できないことは、次のObjective CコードをSwiftに翻訳することだけです。コールバックとして登録するために私自身の関数を呼び出す必要があります。SWIFT(Objective Cではなく)でCGPDFOperatorTableSetCallbackを設定するには

Objective-Cのコードは次のとおりです。

CGPDFOperatorTableSetCallback(operatorTable, "q", &op_q); 

と機能が

static void op_q(CGPDFScannerRef s, void *info) { 
    // Do whatever you have to do in here 
    // info is whatever you passed to CGPDFScannerCreate 
} 

ですスウィフト同等物は何でしょうか?

答えて

0

あなたがしたくない場合は、関数ポインタとして使用する独自のop_q関数を作成する必要はありません。使用スウィフトの閉鎖構文:ここ

CGPDFOperatorTableSetCallback(operatorTable, ("q" as NSString).UTF8String) { (s, info) -> Void in 
    // ... 
} 

("q" as NSString).UTF8Stringは、あなたが関数ポインタを使用したい場合はconst char *はC.

からスウィフトにブリッジとして動作するUsafePointer<Int8>を与え、それは次のようになります。

func op_q(s: CGPDFScannerRef, _ info: UnsafeMutablePointer<Void>) { 
    // ... 
} 
+0

これは機能しません。 –

+0

@cenkebret働いていないものについてもっと詳しく説明できますか?コールバックはクロージャにも入っていませんか?多分新しい質問をして、ここに戻って文脈を提供してください。 – JAL

+0

入力していますが、info paramは常に030です。 –

関連する問題