2015-07-28 5 views
0

Может кто-нибудь, пожалуйста, скажите мне, как я здесь не могу?Невозможно вызвать ++ с аргументом типа int

У меня есть Struct под названием cardView, в котором я предопределяю параметр currentIndex и определяю его как Integer.

Когда я от функции внутри своего struct попытаюсь добавить к currentIndex Я получаю ошибку компилятора в соответствии с темой.

Вот как это выглядит:

struct cardView { 
    var currentIndex: Int = 0 
    func addToIndex() { 
     currentIndex++ 
    } 
} 

cardView структура и функция инициализируется из моей viewController.

ответ

1

Метод изменения внутреннего состояния, поэтому он должен быть объявлен как mutating:

mutating func addToIndex() { 
^^^^^^^^ 

Обратите внимание, что это необходимо для типов значений только - классы не нужно, как вы можете видеть только превращая структуру в класс.

4

Вы можете изменить структурные переменные извне этой структуры, но не из своих собственных функций, вам нужно добавить ключевое слово mutating перед забавой.

struct cardView { 
var currentIndex: Int = 0 
    mutating func addToIndex() { 
     currentIndex++ 
    } 
} 
Смежные вопросы