2016-03-21 12 views
1

PDF dosyalarını ayrıştırmaya çalışıyorum ve neredeyse kodun çalışmasını sağladım. Anlayamadığım tek şey, aşağıdaki Hedef C kodunu Swift'e çevirmektir. Geri çağırma olarak kaydetmek için kendi yazılı işlevimi aramam gerekiyor.SWIFT (Objective C değil) içinde bir CGPDFOperatorTableSetCallback nasıl kurarım

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

ve fonksiyon

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

Swift eşdeğerleri ne olurdu

geçerli:

Objective-C kodu nedir?

cevap

0

İstemiyorsanız, işlev işaretçisi olarak kullanmak için kendi op_q işlevinizi oluşturmanız gerekmez. Kullanım Swift'in kapatma sözdizimi: Burada

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

("q" as NSString).UTF8String size bir işlev işaretçisi kullanmak istiyorsa bir const char * C

gelen Swift köprüleme gibi davranan bir UsafePointer<Int8> verir, bu gibi görünebilir:

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

Bu çalışmıyor. –

+0

@cenkebret Neyin çalışmadığı hakkında biraz daha ayrıntılı bilgi verebilir misiniz? Geri dönüş kapanmaya bile girmiyor mu? Belki de yeni bir soru sorun ve bağlam sağlamak için buraya geri dönün. – JAL

+0

giriyor, ama bilgi param her zaman –

İlgili konular