Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post一个问题。
4年前关闭。
Improve this question
我正在尝试解析PDF文件,而我的代码几乎可以正常工作了。我似乎无法弄清的唯一一件事就是将以下Objective C代码转换为Swift。我需要调用自己的书面函数来将其注册为回调。
Objective-C代码是:
而功能是
斯威夫特的等价物是什么?
在这里
如果要使用函数指针,则可能如下所示:
想改善这个问题吗?更新问题,使其仅关注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/