2016-10-18 2 views
1

Haben abholen KVC jedes der Merkmale von Objective-C-Literale auch bekannt als ‚moderner Objective-c‘KVC und moderne Syntax

Ich frage mich, weil es wirklich praktisch wäre, wenn es etwas ist viel kürzer, und mehr lesbar als

[someObject setValue:someValue forKey:someKey];

Antwort

0

wie Sie wahrscheinlich gleich, war ich nicht in der Lage keine Informationen über diese

Aber ich denke, das Problem mit KVC folgenden „modernen Objective-c“ ist, dass der Compiler würde nicht finden habe eine Möglichkeit zu sagen, ob Sie referieren Nced eine Variable, die außerhalb des Umfangs ist, oder wenn Sie etwas falsch geschrieben haben.

Also ich denke, KVC wird immer der Standard-Nachrichtensyntax

+1

Der Compiler prüft (kann nicht) auch die Gültigkeit von 'someDict [aKey]'. –

+0

@JoshCaswell +1 Und außerdem: Eine andere Syntax mit den gleichen Informationen (Objekt, Schlüssel, Wert) kann * immer * den gleichen Code erzeugen. Man könnte sich 'v [k] -> - >> object' vorstellen. –

2

Objekt Abonnement folgen muß, ist zu KVC Nähe:

someObject[someKey]=someValue; 

Bitte beachten Sie, dass das Objekt Abonnement und KVC folgt unterschiedliche Codepfaden, so dass es ist möglich, dass das Verhalten nicht das gleiche ist. Dafür gibt es jedoch wenig Grund.

Neben diesem könnte man zweifeln, ob dies die klarere Syntax:

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

Welche Nachrichten gesendet werden?