2015-04-30 4 views
0

У меня есть класс, который выглядит следующим образом:Установить переменную класса из другого класса

class ContactsHolder { 
    static let name = "joe" 
} 

и из другого класса я могу назвать это так:

println(ContactsHolder.name) 

Мой вопрос заключается в том, как сделать I установить эту переменную на что-то еще?

Я пробовал:

ContactsHolder.name = "bob" и получить Cannot assign to the result of this expression

Собираюсь ли я об этом совершенно неправильно или что мне нужно сделать ??

ответ

3

С let вы объявляете константу, которая не может быть изменена.

Вы можете использовать переменную вместо:

class ContactsHolder { 
    static var name = "joe" 
} 

ContactsHolder.name = "mike" 

println(ContactsHolder.name) // prints "mike" 
+0

хорошо это работает, я только что узнал, что я мог установить имя в стремительном файле и доступ из любой точки мира, даже ссылаясь на имя быстрого файла. Существуют ли недостатки, связанные с тем, что мой файл ContactsHolder.swift не имеет класса и просто имеет в нем 'var name =" joe "', и из моего контроллера представления сделайте так: 'name =" bob "println (name)' – BluGeni

+0

Действительно, это не идеально, потому что тогда ваш контент не отделен от чего-либо еще. Плохая практика «загрязнять» глобальную сферу с помощью переменных. :) Лучше «инкапсулировать» внутри классов, структур, перечислений и т. Д. – Moritz

+0

@BluGeni Этот ответ верный, но его, вероятно, нужно отредактировать, чтобы заявить, что это не то, как вы должны обрабатывать переменные, для новичков в программировании. Создание статических переменных может быть плохой практикой, если вы не знаете, что делаете. Подумайте о переменных, таких как «свойства» объектов реального мира. В книге есть numPages, coverColor и т. Д. Прочитайте объектно-ориентированное программирование, прежде чем идти дальше. – Chackle

Смежные вопросы