0

これは一般的な質問に似ています: if ステートメントのように値を代入する方法はありますか? 辞書があり、キーが存在するかどうかを確認してから割り当てたい。例えば:

if((_attr.val = [self.dic objectForKey:@"name"]))

そして、キーが _attr.val に存在する場合はオブジェクトを取得し、そうでない場合は null を取得することを知っています。素晴らしいですが、statemant がその後に to_do_something を必要とする場合、しかし私の場合はこれで終わりです - 私がやりたいことはすべてです。

これはおそらくばかげた質問ですが、解決策を見つけるのに苦労しています。

c ++で知られているASSERT()のようなものを見つけたいです。

4

1 に答える 1

1

if 、条件付きパスを作成する場合に適しています。この場合、値を に代入したいだけですが_attr.val、すべてが期待どおりに進んだかどうかを確認する必要があります。私は一緒に行きます:

_attr.val = [self.dic objectForKey:@"name"]
if(!_attr.val){
  // Conditional case for a nil value.
}

最終結果 (値または nil) が本当に重要でない場合は、次のようにします。

_attr.val = [self.dic objectForKey:@"name"]

いずれにせよ、この質問をif念頭に置いて始めた場合、何らかのチェックを行いたいようです。

NSAssert:

_attr.val = [self.dic objectForKey:@"name"]
NSAssert(_attr.val,@"Value is nil"); 
于 2012-07-06T11:30:14.430 に答える