-1

JSON をマッピングした後のサーバー側がデフォルト (Java で記述) として null 値を期待している場合、Swift で nil 値を操作し、それらをマッピングして、アンラップせずにそのまま送信することは可能ですか?

ある時点で価値があるかもしれないし、価値がないかもしれないので、変数をオプションとして作成しました。しかし、nil値を送信したい場合でも、ラップを解除する必要があります。

これは私のコードです:

private var _username: String?

var username: String{
    get{

        return self._username

    }set(username){

        self._username = username
    }
}

そして、オプションのチェーンを試してみると、6行目でこれを行う必要があります:

return (self._username?)!

しかし、次のようなエラーが表示されます: " '?' 呼び出し、メンバー検索、または添字が続く必要があります"

Swift で nil を使用する方法はありますか、またはバックエンドでデフォルト値を変更する必要がありますか?

4

2 に答える 2

2

サーバーはSwiftのnilが何かわからないため、「そのまま」渡すことはできません。ただし、nil を意味する文字列または JSONnull値のいずれかを渡すことができます。

これは、nil 合体演算子を使用する良い機会です。

private var _username: String?

var username: String{
    get{

        // This will return the username if it is .Some or "null" if it is .None
        return self._username ?? "null"
        // Note that when you create the JSON object there is a difference between
        // "null" which is a string and null which is the JSON equivalent to nil.

    } set(username) {

        self._username = username
    }
}
于 2016-08-22T17:16:33.500 に答える
0

これを行うだけです:

var username: String?

なので:

private var _username: String?

var username: String? {
    get{
        return self._username
    }set(username){
        self._username = username
    }
}
于 2016-08-22T17:24:06.990 に答える