2016-10-18 8 views
1

はKVCは、Objective-Cのリテラル別名「現代のObjective-Cの」はるかに短い何かがあった場合、それは本当に便利になるので、私は思ったんだけどKVCと近代的な構文

の機能のいずれかをピックアップし、より多くのでした

[someObject setValue:someValue forKey:someKey];

答えて

0

より読みやすいあなたとおそらく同じ、私はその

上の任意の情報を見つけることができませんでした。しかし、私はKVCの問題以下の「現代のObjective-Cのは、」コンパイラがないということだと思いますあなたがレフェリーかどうかを判断する方法はありますか範囲外の変数を指定した場合や、何かスペルミスがある場合

だから私はKVCはいつも

+1

コンパイラは 'someDict [aKey]'の妥当性をチェックしません。 –

+0

@ JoshCaswell +1さらに、同じ情報(オブジェクト、キー、値)を持つ異なる構文は、常に同じコードを生成できます。 'v [k] - > - >オブジェクト'と考えることができます。 –

2

オブジェクトのサブスクリプションがKVCに近い標準メッセージ構文に従う必要がありますと思う:

someObject[someKey]=someValue; 

注意してください、そのオブジェクトのサブスクリプションとKVCは、異なるコードパスをたどるので、その行動が同じではない可能性があります。しかし、その理由はほとんどありません。メッセージが送信される

object[@"a"]=object[@"b"]=object[@"c"]; 

:これは明確な構文であれば、この1のほかに

は、疑うかもしれませんか?

関連する問題