【问题标题】:Cannot pass immutable value as inout argument不能将不可变值作为 inout 参数传递
【发布时间】:2017-10-30 11:17:10
【问题描述】:

在 Objective-C 中

CGPDFArrayRef array;

这很好用:而在 Swift 中应该可以,

var array:CGPDFArrayRef

但在下一行传递时出现此错误:

var success = CGPDFScannerPopArray(inScanner, &array)

无法将不可变值作为 inout 参数传递:从 'CGPDFArrayRef' 到 'CGPDFArrayRef' 的隐式转换?需要一个临时的。

【问题讨论】:

  • 试试这个var array: CGPDFArrayRef? = nil
  • @Anbu.Karthik:是的,这是正确的解决方案。
  • @Hemang:您在问题中更新的代码编译没有问题。
  • 是的,已更正。但实际问题不同。
  • 谢谢@Anbu ... 有时我想知道 Swift 的设计者是否乐于将本应简单的语言变成真正令人费解的语言。严重地。无论谁决定强迫我们每个人重复处理可选变量,都需要带到校长办公室。

标签: ios swift


【解决方案1】:

我通过像这样传递array 来修复它:

var success = CGPDFScannerPopArray(inScanner, UnsafeMutablePointer(array))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多