ios - 如何在 SWIFT 中设置 CGPDFOperatorTableSetCallback(不是 Objective C)

标签 ios objective-c c swift cgpdf

<分区>

我正在尝试解析 PDF 文件,我几乎已经让代码正常工作了。我似乎唯一想不通的是将以下 Objective C 代码翻译成 Swift。我需要调用自己编写的函数将其注册为回调。

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
}

Swift 的等价物是什么?

最佳答案

您无需创建自己的 op_q如果您不想,可以将函数用作函数指针。使用 Swift 的闭包语法:

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

在这里("q" as NSString).UTF8String给你一个UsafePointer<Int8>它充当 const char *从 C 桥接到 Swift。

如果你想使用函数指针,它可能看起来像这样:

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

关于ios - 如何在 SWIFT 中设置 CGPDFOperatorTableSetCallback(不是 Objective C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36138239/

相关文章:

python - OCaml Sys.command 函数抛出的 "No child processes"错误

ios - UICollectionReusableView 不显示

ios - 不允许在释放时尝试加载 View Controller 的 View ,这可能会导致未定义的行为

ios - 当我验证应用程序时,Xcode 管理器无法列出我的所有应用程序

ios - NSURLSessionDataTask 超时后续请求失败

objective-c - UITextField是否在UIAlertView中替代?

ios - UIWebSelectSinglePicker 崩溃

ios - 一键隐藏多个按钮 Objective C

c - 父进程中的 read() 是否等待管道中的子 write()?

c - 在随机访问文件中覆盖