我想获得CGPDFDictionaryRef的所有键。到目前为止,我发现了from stackoverflow
这是我在swift中的代码:
func printPDFKeys(key: UnsafePointer<Int8>, ob: CGPDFObjectRef, info: UnsafeMutablePointer<()>) -> Void{
NSLog("key = %s", key);
//return (key, ob , info)
}
然后像这样调用此函数。
let myDoc = CGPDFDocumentCreateWithURL(url)
if myDoc != nil {
let myCatalog=CGPDFDocumentGetCatalog(myDoc)
CGPDFDictionaryApplyFunction(myCatalog, printPDFKeys, nil);//Compiler error here
}
但是我收到错误
c函数指针只能通过对“函数”的引用形成。 或文字封闭
我也试过像这样使用Closure:
var printPDFKeys: ( UnsafePointer<Int8>, CGPDFObjectRef, UnsafeMutablePointer<()> )-> Void
printPDFKeys={
key,ob,info in
NSLog("key = %s", key);
}
我仍然遇到同样的错误。我该怎么办呢
答案 0 :(得分:1)
正确的闭包语法是:
CGPDFDictionaryApplyFunction(myCatalog, { (key, object, info) -> Void in
// do something
}, nil)