1

私は NSObject サブクラスを持っています。シティウォークと言う

class CityWalks{ var totalCount:Int? }

このプロパティをさらに使用するにはどうすればよいですか? この値にアクセスするたびに nil の合体を確認する必要があります。

例:

let aObject =

ある関数 (function1()) で言うと、この値にアクセスする必要があり、それから(aObject!.totalCount ?? 0)

func function1(){
 ...Some Access code for the object....
 (aObject!.totalCount ?? 0)
}

同様に、他のすべての function(function2()) で、同じコードを記述する必要があります。

func function2(){
 ...Some Access code for the object....
 (aObject!.totalCount ?? 0)
}

したがって、このプロパティがサーバーから値を受け取るかどうかを考慮すると、そのようなフィールドに対するより良いアプローチは何でしょうか。

4

2 に答える 2

0

コメントに記載されているように、オプションを使用した他の回答は、あなたの場合には最適ではありません。デフォルト値の 0 を使用することもできるようです。

ただし、明確にするために、オプションのラップを解除するときに値を確認する必要があります。場合によっては、オプションを UIElement などに渡すことが可能であり、実際には何もする必要はありません。

オプションの値が nil かどうかを確認するかなりの方法が Swift に組み込まれているため、オプションを使用していてもかなりきちんとしたコードを作成できます。

値を安全にアンラップする方法について詳しく知りたい場合は、 を参照guard letしてください。if let

させれば

if let totalWalks = aObject?.totalCount {
    //operate on totalWalks
}

ガード

guard let totalWalks = aObject?.totalCount else { return }
//operate on totalWalks

オプションの値で関数を呼び出したい場合もあり、この場合は次のようにして実行できます?

aObject?.doSomething()

この関数が持つ可能性のあるすべての戻り値は、オプションでラップされるようになり、それらをif letorでアンラップする必要がある場合があります。guard

!オプションを使用する場合は、値が null ではないことを現時点で知っていても、コードの変更後に true でなくなる可能性があるため、アンラップを強制しないようにする必要があります。

于 2015-10-28T06:49:01.787 に答える