2015-08-30 95 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

至Init,你必須要麼讓它明示或可選的,像這樣一個空字符串:

let string: String! 
let string: String? 

你可以使用任何數據類型做到這一點。

+2

這不會初始化任何東西,它只是告訴編譯它將在某個時間點被初始化/有一個值。 – donnywals

相關問題