2014-11-18 9 views
2

Я хотел создать класс Swift для хранения некоторых данных, поэтому я хотел использовать переменные класса, потому что знаю статические переменные из Java. Поэтому я написал этот код:Переменные класса в Swift

class myClass { 
    class var myVar:Int = 0 
} 

Но эта функция еще не поддерживается, так как предупреждение было сказано. Поэтому я хотел спросить, есть ли способ сделать это красиво. Я знаю, что это своего рода работа с использованием вычисляемых свойств, но на самом деле это не то, что я действительно хочу. Я очень люблю, когда кто-то помог мне:]

+1

использование 'struct' вместо этого. Structs поддерживает статические vaiables –

+1

Прочитайте [этот ответ] (http://stackoverflow.com/a/26567571/148357) - немного другой вопрос, но уместный ответ – Antonio

+0

@ Антонио спасибо за ссылку, которую я раньше не видел, но когда переменные класса поддерживаются, разрешено ли им использовать их или я предпочитаю использовать структуры вместо этого? – borchero

ответ

3

Ваши два варианта использовать поистине глобальные переменные:

var myVar: Int = 0 

или использовать статические переменные в структуры:

struct MyStruct { 
    static var myVar:Int = 0 
} 

Либо из они будут обладать глобальными возможностями для вашего проекта/модуля.

(Обратите внимание, что имена типов должны быть капитализированы: MyType, не myType.)

+0

Спасибо за ваш ответ - но могу ли я использовать переменные класса при их поддержке или лучше использовать структуры? Постскриптум Я действительно знаю о именах классов, но я просто записал его здесь и не думал, что много о именах LOL – borchero

+1

Не стоит беспокоиться! Честно говоря, не должно быть разницы - * экземпляры * класса и 'struct' различаются в том, что экземпляры класса являются ссылочными типами, а экземпляры структуры - это типы значений, но если вы просто используете этот тип в качестве репозитория для статических варсов это не имело бы значения так или иначе. –