在swift 3中将UnsafeMutablePointer传递给函数中的Ref Object

Posted

技术标签:

【中文标题】在swift 3中将UnsafeMutablePointer传递给函数中的Ref Object【英文标题】:Passing UnsafeMutablePointer to Ref Object in a function in swift 3 【发布时间】:2016-12-11 16:45:00 【问题描述】:

我正在快速开发一个 pdf 解析器,所以我偶然发现了函数 CGPDFScannerPopString,它需要一个 CGPDFScannerRef 和一个 UnsafeMutablePointer?

Objective C 代码如下所示:

CGPDFStringRef pdfString;
CGPDFScannerPopString(pdfScanner, &pdfString);

我如何在 swift 3 中编写这个?

【问题讨论】:

【参考方案1】:

CGPDFScannerPopString的第二个参数的类型是UnsafeMutablePointer<CGPDFStringRef?>?。因此,您需要准备一个 CGPDFStringRef? 类型的变量并将其作为 inout 参数传递:

var pdfString: CGPDFStringRef?
_ = CGPDFScannerPopString(pdfScanner, &pdfString)

【讨论】:

这就是我最初尝试的方法,但是出现了一些错误,告诉我调用中有一个额外的参数,并且表达式列表中需要一个表达式... @MichaelSchmid,上面的代码在我的 Xcode 8.1 中编译没有任何问题。如果您发现了此类错误,则可能是其他一些事情正在影响。您应该显示可以重现您的问题的完整代码。 对不起,我错过了一个括号...漫长的一天已经?感谢您的帮助 这可能会发生。休息一下(我希望你能...)。祝你好运。

以上是关于在swift 3中将UnsafeMutablePointer传递给函数中的Ref Object的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Alamofire,swift 3 中将字典作为参数发送

如何在 Swift 3 中将 NSConstraints 添加到 UITextView

如何在 swift 3 中将滑动手势添加到 AVPlayer

在 Swift 3 中将数据拆分为块

在swift 3中将数组转换为段标题

如何在 swift 3 中将 MKPolylines 添加到 MKSnapShotter?