2015-06-03 3 views
1

У меня есть несколько вараSwift вар дополнение не работает

Теперь я хочу, чтобы мой вар totalScore быть = другой мой вар добавил

вот мой код

var section1score: Int = 0 
var section2score: Int = 0 
var section3score: Int = 0 
var totalScore: Int = section1score + section2score + section3score 

Этот код не работает. .. в var totalScore это говорит мне, что ViewController не имеет члена с именем section1Score ... и останавливается там

Что я делаю неправильно?

спасибо!

+0

вы, вероятно, написать неправильно, это не 'section1Score' это' section1score' –

+0

я побежал этот код на игровой площадке, и он не дает никаких ошибок. Я предполагаю, что у вас есть другая ошибка в вашем контроллере view. Раскомментируйте строки и посмотрите, сможете ли вы их построить. – ullstrm

+0

Код в порядке. Ошибка в другом месте – mokiSRB

ответ

4

Вы можете написать totalScore как вычисленное свойство так, чтобы оно всегда было суммой других 3 свойств.

var totalScore: Int { 
    get { 
     return section1score + section2score + section3score 
    } 
} 
+1

Вы можете опустить 'get' и просто иметь' var totalScore: Int {return ...} ':) – ABakerSmith

+0

Спасибо! это сработало отлично! – Jp4Real

1

Этот код является функцией? Вы не можете переменные экземпляра, пока init() не будет завершен. Поэтому, если они находятся в функции, это должно работать.

func test() { 
    var section1score: Int = 0 
    var section2score: Int = 0 
    var section3score: Int = 0 
    var totalScore: Int = section1score + section2score + section3score 
} 

Или, если они должны быть переменными экземпляра:

var section1score: Int = 0 
var section2score: Int = 0 
var section3score: Int = 0 
var totalScore: Int = 0 

init() { 
    totalScore = section1score + section2score + section3score 
} 
+0

он решил мою ошибку, но ответ Кейта решил мою проблему с суммой снова! – Jp4Real

1

Попробуйте

var section1score: Int! 
var section2score: Int! 
var section3score: Int! 
var totalScore: Int! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    section1score = 0 
    section2score = 0 
    section3score = 0 

    totalScore = section1score + section2score + section3score 
    println(totalScore) 
} 
Смежные вопросы