我在将一些 Objective-C 代码转换为 Swift 时遇到错误。
我正在使用 - attribute:atIndex:effectiveRange:
NSAttributedString
并且有关于 effectiveRange
参数的错误,它是一个 NSRangePointer
。
objective-C :
NSRange range;
id value = [self.textanalyze
attribute:attribute
atIndex:index
effectiveRange:&range]
swift :
var range : NSRange?
var value : Any = self.textanalyze.attribute(attributes,
atIndex: index,
effectiveRange: &range)
我在 &range
附近遇到错误。
最佳答案
您需要展开范围。
此外,您需要初始化范围。否则,这会使您的程序崩溃。
var range : NSRange? = NSMakeRange(0, 1)
self.textanalyze.attribute(attributes, atIndex: index, effectiveRange: &range!)
或者,如果您不想展开您的范围(它可能是 nil),请像这样重写您的函数:
var range : NSRange?
doSomethingWithRangePointer(&range)
func doSomethingWithRangePointer(range : UnsafeMutablePointer<NSRange?>) {
// Do stuff
}
但是您可能不需要首先将您的范围设置为可选(想想,range
是否需要为 nil?如果不需要,那么它就不需要是可选的。 ), 在这种情况下,像这样初始化范围就可以了:
var range = NSMakeRange(0, 1)
关于ios - 将 NSRangePointer 从 Objective-C 翻译成 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25825301/