2015-08-30 4 views
2

Когда я создаю переменную без String() для инициализации переменной, появляется сообщение об ошибке, «переменная не инициализируется», такая же ошибка появляется, когда я непосредственно назначаюпеременная была написана, но никогда не использовалась в Swift 2.0 и Xcode 7

var username: String = usernameTextfieldSigup.text!

И когда я инициализировать переменную, используя код, приведенный ниже,

var username: String = String() 
username = usernameTextfieldSignup.text! 

предупреждение появляется, переменная «имя пользователя» была написана, но никогда не используется.

Я знаю, что могу просто игнорировать эти предупреждения, но мне нужен более чистый код. Я использую версию Xcode7 beta5.

ответ

3

Вы можете объявить имя пользователя без значения первого:

var username: String 

, а затем присвоить ему значение в вашем инициализаторе:

// replace with your (valid) initializer 
func init() { 
    username = usernameTextfieldSignup.text! 
} 

Тем не менее, я уверен, что usernameTextfieldSignup.text не будет имеют значение, пока пользователь не предоставит значение. Так что в этом случае я бы рекомендовал сделать username необязательными, так что вы можете установить это значение, когда вам нужно:

var username: String? 

, а затем при установке его:

username = usernameTextfieldSignup.text 

и при доступе к нему:

if let uname = username { 
    // do something with the uname 
} 

Кроме того, предупреждение variable 'username' was written but never used, которое вы видите, вероятно, связано с тем, что вы пишете/инициализируете username, но нет кода, g это, так что это вроде бесполезная переменная в соответствии с компилятором.

+0

Спасибо, работает очень! – suisied

-1

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

let string: String! 
let string: String? 

Вы можете сделать это с любым типом данных.

+2

Это не инициализирует ничего, оно просто сообщает компиляции, что оно будет инициализировано/имеет значение в некоторый момент времени. – donnywals