NSScanner scanDouble UnsafeMutablePointer
NSScanner scanDouble UnsafeMutablePointer
我正在使用 NSScanner
扫描字符串并从中提取双精度数。这是我尝试解决问题的沙盒代码
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)
它打印:
7
0x0000000000000000
因此,前两次使用字符串第一部分的调用有效,但随后扫描双精度无效。
我见过类似这样的其他解决方案:
var double = 0.0
scanner.scanDouble(&double)
但这似乎不再适用于 Swift。也许它在早期版本中有?
我该如何解决这个问题?
我想知道你是否不小心用 scanner.scanDouble
而不是 scanner2.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)
我正在使用 NSScanner
扫描字符串并从中提取双精度数。这是我尝试解决问题的沙盒代码
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)
它打印:
7
0x0000000000000000
因此,前两次使用字符串第一部分的调用有效,但随后扫描双精度无效。
我见过类似这样的其他解决方案:
var double = 0.0
scanner.scanDouble(&double)
但这似乎不再适用于 Swift。也许它在早期版本中有?
我该如何解决这个问题?
我想知道你是否不小心用 scanner.scanDouble
而不是 scanner2.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)