我试图在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
复制相似问题