3

変数を初期化するために String() を使用せずに変数を作成すると、「変数が初期化されていません」という警告が表示され、直接代入すると同じエラーが表示されます

var username: String = usernameTextfieldSigup.text!

そして、以下のコードを使用して変数を初期化すると、

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

警告が表示され、変数 'username' が書き込まれましたが、使用されませんでした。

これらの警告を無視できることはわかっていますが、よりクリーンなコードが必要です。Xcode7 beta5 リリースを使用しています。

4

2 に答える 2

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が、実際にそれを読み取るコードがないためです。そのため、コンパイラによると、それは一種の役に立たない変数です。

于 2015-08-30T10:47:32.523 に答える
0

空の文字列を初期化するには、次のように明示的またはオプションにする必要があります。

let string: String!
let string: String?

これは、任意のデータ型で実行できます。

于 2015-08-30T10:41:17.367 に答える