2016-03-22 3 views
0

私はNSScannerを使用して文字列をスキャンし、そこからダブルを抽出します。文字列の作業の最初の部分を消費するので、最初の二つの呼び出しNSScanner scanDouble UnsafeMutablePointer

7 
0x0000000000000000 

が、その後ダブルスキャンすることはできません。ここでは問題を試してみて、解決するために、私のサンドボックス化されたコード

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) 

だそれは印刷しますワーキング。

var double = 0.0 
scanner.scanDouble(&double) 

をしかし、それはもうスウィフトに動作していないよう:

私はこのようになり、他のソリューションを見てきました。多分それは以前のバージョンで行ったでしょうか?

どうすればこの問題を解決できますか?

+0

はまだ私の作品 –

答えて

0

scanner2.scanDoubleの代わりにscanner.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) 
+0

はい!それは動作します。面白い、私はとても多くのことを試みました。私は基本的にこれを試しました、そして今私が行ったことは 'let aDoubleNumber'と定義されているので、コンパイルエラーが発生するようになりました 'UnsageMutablePointer型のnon-inout引数で使用されました' &の付いた参照 – gngrwzrd

関連する問題