Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift语法:CGPDFDocument.getVersion中的不可配置指针_Swift_Cocoa_Unsafemutablepointer - Fatal编程技术网

Swift语法:CGPDFDocument.getVersion中的不可配置指针

Swift语法:CGPDFDocument.getVersion中的不可配置指针,swift,cocoa,unsafemutablepointer,Swift,Cocoa,Unsafemutablepointer,有人能解释一下我应该如何在Swift中使用CGPDFDocument的“getVersion”方法吗? 苹果的文档提供: func getVersion(majorVersion: UnsafeMutablePointer<Int32>, minorVersion: UnsafeMutablePointer<Int32>) func getVersion(主版本:UnsafeMutablePointer, minorVersion:UnsafemeutableP

有人能解释一下我应该如何在Swift中使用CGPDFDocument的“getVersion”方法吗? 苹果的文档提供:

func getVersion(majorVersion: UnsafeMutablePointer<Int32>, 
   minorVersion: UnsafeMutablePointer<Int32>)
func getVersion(主版本:UnsafeMutablePointer,
minorVersion:UnsafemeutablePointer)
返回时,majorVersion和minorVersion参数的值分别设置为文档的主版本号和次版本号

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

您可以这样使用它:

var major: Int32 = 0
var minor: Int32 = 0
document.getVersion(majorVersion: &major, minorVersion: &minor)
print("Version: \(major).\(minor)")
函数需要指针,但如果使用
&
运算符传入普通
Int32
变量,Swift编译器足够聪明,可以使用指向变量的指针调用函数。这在中有记录

函数如此工作的主要原因可能是它是一个非常古老的C函数,已导入Swift。C不支持元组作为返回值;使用指针作为输入输出参数是使函数返回多个值的一种方法。可以说,为返回类型定义自定义结构是一种更好的设计,这样函数就可以在一个类型中返回两个值,但是这个函数的原始开发人员显然不认为这是必要的——也许并不令人信服,因为这种模式在C中非常常见