2016-11-09 1 views
1

の最上位桁を知っていますアプリがクラッシュする約10の数字を入力します。は、入力値がボタンで設定されている私は、ベースコンバータであるSWIFT 3とXcodeの8でアプリをやっている数

スレッド1::私は「currentnumber」Xcodeのための新しい値を設定する行は私にこれを示した後EXC_BAD_INSTRUCTION(コード= EXC_INPOV、サブコード= 0x0の)

+0

そして、何currentNumber' 'の値は、クラッシュ時に次のとおりです。

ここでは、始めるためにいくつかのコードですか? – Droppy

+0

currentNumber –

+0

の入力値でクラッシュしますが、「約10個の数字を入力するとアプリがクラッシュします」と表示されます。だから、クラッシュするときの最終的な価値は何ですか? – Droppy

答えて

2

オーバーフローは(ありがたいことに)スウィフトに誤りです。

実際に計算を実行する前に、値がInt.maxを超えるかどうかをチェックすることで、コード内でこれを防ぐことができます。

guard let inputNumber = Int(inputString) else { 
    labelText.text = "input not a number or out of range" 
    return 
} 

guard currentNumber < (Int.max - inputNumber)/10 else { 
    labelText.text = "overflow" 
    return 
} 

currentNumber = currentNumber * 10 + inputNumber 
labelText.text = "\(currentNumber)" 
+1

私の考え。しかし、回答する前にcurrentNumberがIntであることを確認したかったのです。 – Dean

+0

うわー、それは実際に働いた!ありがとう、たくさんの男! –

+0

さらに数字を追加する方法はありますか? –

関連する問題