我试图在Swift中调用NSLayoutManager对象的NSLayoutManager方法。它的描述是:
func lineFragmentRectForGlyphAtIndex(glyphIndex: Int, effectiveRange: CMutablePointer<NSRange>)
但我想不出我该怎么称呼它。根据苹果的文档,我不得不这样称呼它:
let someRange : NSRange = ...
layoutManager.lineFragmentRectForGlyphAtIndex(0, effectiveRange: &someRange)
文件就是这么写的。但是我得到了一个错误:'NSRange‘不是'@lvalue $T5’的一个子类型
我该怎么办?
发布于 2014-06-27 15:11:08
试着把它变成var
而不是let
var someRange: NSRange = ...
layoutManager.lineFragmentRectForGlyphAtIndex(0, effectiveRange: &someRange)
基本上:在&
上使用var
可以提供一些与CMutablePointer
兼容的东西,但是let
不应该是可变的。因此,类型错误。
如果要传递空指针,只需编写nil
而不是&someRange
(当然不需要声明额外的var
)。
https://stackoverflow.com/questions/24455010
复制相似问题