gpt4 book ai didi

cocoa-touch - CMutablePointer 死胡同

转载 作者:行者123 更新时间:2023-11-28 13:22:07 26 4
gpt4 key购买 nike

我试图在 Swift 中调用 NSLayoutManager 对象的 lineFragmentRectForGlyphAtIndex 方法。它的描述是:

func lineFragmentRectForGlyphAtIndex(glyphIndex: Int, effectiveRange: CMutablePointer<NSRange>)

但我想不通我该如何调用它。根据 Apple 文档,我必须这样调用它:

let someRange : NSRange = ...
layoutManager.lineFragmentRectForGlyphAtIndex(0, effectiveRange: &someRange)

这就是文档所说的。但我得到一个错误:“NSRange”不是“@lvalue $T5”的子类型

我该怎么办?

最佳答案

尝试将其设为 var 而不是 let:

var someRange: NSRange = ...
layoutManager.lineFragmentRectForGlyphAtIndex(0, effectiveRange: &someRange)

基本上:在 var 上使用 & 给你一些与 CMutablePointer 兼容的东西,但是 let不应该是可变的。因此类型错误。

如果你想传递一个空指针,只需要写 nil 而不是 &someRange (当然你不需要声明额外的 var )。

关于cocoa-touch - CMutablePointer<NSRange> 死胡同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24455010/

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