gpt4 book ai didi

Swift 语法 : UnsafeMutablePointers in CGPDFDocument. getVersion

转载 作者:行者123 更新时间:2023-11-28 06:21:04 24 4
gpt4 key购买 nike

谁能解释一下我应该如何在 Swift 中为 CGPDFDocument 使用“getVersion”方法?Apple 的文档给出:

func getVersion(majorVersion: UnsafeMutablePointer<Int32>, 
minorVersion: UnsafeMutablePointer<Int32>)

“返回时,majorVersion 和 minorVersion 参数的值分别设置为文档的主要版本号和次要版本号。”

所以我提供了两个变量作为函数的参数,并且它们在退出时被填充了值?在调用该方法之前,他们是否需要特别指出某些内容?如果返回值是整数,为什么不直接将它们键入整数?

最佳答案

你可以这样使用它:

var major: Int32 = 0
var minor: Int32 = 0
document.getVersion(majorVersion: &major, minorVersion: &minor)
print("Version: \(major).\(minor)")

该函数需要指针,但如果您使用 & 运算符传入纯 Int32 变量,Swift 编译器足够智能,可以使用指向变量的指针调用该函数.这记录在 Using Swift with Cocoa and Objective-C: Interacting with C APIs 中.

函数之所以如此工作的主要原因可能是它是一个非常古老的 C 函数,已导入到 Swift 中。 C 不支持元组作为返回值;使用指针作为输入输出参数是一种让函数返回多个值的方法。可以说,为返回类型定义一个自定义结构,这样函数就可以在一个类型中返回两个值,这本来是一个更好的设计,但这个函数的最初开发者显然认为没有必要——也许不足为奇,因为这种模式在 C 语言中很常见。

关于Swift 语法 : UnsafeMutablePointers in CGPDFDocument. getVersion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43448243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com