变量是写的但从未在Swift 2.0& Xcode 7

时间:2015-08-30 10:36:50

标签: xcode swift swift2 xcode7-beta5

当我创建一个没有String()的变量来初始化变量时,错误会显示警告,"变量不会初始化",当我直接分配时出现相同的错误

var username: String = usernameTextfieldSigup.text!

当我使用下面的代码初始化变量时,

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

警告出现,变量'用户名'是写的但从未使用过。

我知道我可以忽略这些警告,但我想要一个更干净的代码。 我正在使用Xcode7 beta5版本。

2 个答案:

答案 0 :(得分:4)

您可以先声明没有值的用户名:

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但实际上没有代码读取它,因此根据编译器它是一种无用的变量。

答案 1 :(得分:0)

要初始化一个空字符串,您必须使其显式或可选,如下所示:

let string: String!
let string: String?

您可以使用任何数据类型执行此操作。