Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。

4年前关闭。



Improve this question




我正在尝试解析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
}

斯威夫特的等价物是什么?

最佳答案

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

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

在这里("q" as NSString).UTF8String为您提供了一个UsafePointer<Int8>,它充当从C桥接到Swift的const char *

如果要使用函数指针,则可能如下所示:
func op_q(s: CGPDFScannerRef, _ info: UnsafeMutablePointer<Void>) {
    // ...
}

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

10-14 20:46
查看更多