Наличие переменной досягаемости 9223372036854775808 приводит к сбою моей программы - PullRequest
0 голосов
/ 05 июля 2019

При достижении переменной 9223372036854775808 происходит сбой моей программы.

Мне не удалось найти какую-либо информацию.

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var disview: UILabel!
    var dislikes = 1

    @IBAction func dislike(_ sender: Any) { //Add to dislikes VAR and refresh display
        dislikes += dislikes //when this reaches 9223372036854775808 my program crashes
        print(dislikes)
        disview.text = "\(dislikes)"
    }

    @IBAction func reset(_ sender: Any) { //Reset dislikes varibles to 0 and refresh display
        dislikes = 0 
        print("reset dislikes")
        disview.text = "\(dislikes)"
    }

Я получаю:

Тема1: EXC_BAD_INSTRUCTION (код = EXC_I386_INVOP, субкод = 0x0)

1 Ответ

0 голосов
/ 05 июля 2019

Да, целочисленное переполнение приведет к сбою вашей программы в Swift.

Если вы хотите разрешить переполнение, вы можете использовать операторы переполнения & + & - & *

dislikes = dislikes &+ dislikes
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...