Swift NSScanner可扫描的不可女性化指针

Swift NSScanner可扫描的不可女性化指针,swift,cocoa,cocoa-touch,nsscanner,Swift,Cocoa,Cocoa Touch,Nsscanner,我正在使用NSScanner扫描一个字符串并从中提取一个double。下面是我的沙盒代码,试图解决这个问题 let string = "maxage=1234567890" let scanner2 = NSScanner(string: string) scanner2.scanUpToString("=", intoString: nil) scanner2.scanString("=", intoString: nil) let maxage2:UnsafeMutablePointer&l

我正在使用
NSScanner
扫描一个字符串并从中提取一个double。下面是我的沙盒代码,试图解决这个问题

let string = "maxage=1234567890"
let scanner2 = NSScanner(string: string)
scanner2.scanUpToString("=", intoString: nil)
scanner2.scanString("=", intoString: nil)
let maxage2:UnsafeMutablePointer<Double> = UnsafeMutablePointer<Double>()
scanner.scanDouble(maxage2)
print(scanner2.scanLocation)
print(maxage2)
因此,前两个使用字符串的第一部分的调用是有效的,但是扫描一个double是无效的

我见过其他类似的解决方案:

var double = 0.0
scanner.scanDouble(&double)
但这在斯威夫特看来已经不起作用了。也许在早期版本中是这样的


我该如何解决这个问题?

我想知道你是不是因为使用了
扫描器.scanDouble
而不是
扫描器2.scanDouble
而意外地在那里输入了一个错误

这对我很有用:

let string = "maxage=1234567890"
let scanner2 = NSScanner(string: string)
scanner2.scanUpToString("=", intoString: nil)
scanner2.scanString("=", intoString: nil)
var aDoubleNumber = 0.0
scanner2.scanDouble(&aDoubleNumber)
print(scanner2.scanLocation)
print(aDoubleNumber)

还为我工作是的!这很有效。有趣的是,我尝试了这么多东西。我基本上是这样尝试的,现在我意识到我所做的是定义“let aDoubleNumber”,这样我会得到一个编译错误“&与类型为UnsageMutablePointer的非inout参数一起使用”,所以我很困惑,认为我不能用&传递引用。
let string = "maxage=1234567890"
let scanner2 = NSScanner(string: string)
scanner2.scanUpToString("=", intoString: nil)
scanner2.scanString("=", intoString: nil)
var aDoubleNumber = 0.0
scanner2.scanDouble(&aDoubleNumber)
print(scanner2.scanLocation)
print(aDoubleNumber)