3
哪種方式更適合用於鍵值編碼?讓我們假設myController的類具有可變MYVARIABLE。有人可以寫出不好的意見,這是不好的,爲什麼。KVC使用哪種方法?
// Method in the MyController class.
- (NSString*)myVariableKVC {
return NSStringFromSelector(@selector(myVariable));
}
[myController addObserver:self
forKeyPath:[myController myVariableKVC]
options:NSKeyValueObservingOptionNew
context:nil];
2.
[myController addObserver:self
forKeyPath:@"myVariable"
options:NSKeyValueObservingOptionNew
context:nil];
從我的觀點第一部分的一點是越多越好。我們沒有硬編碼的字符串,當我們將使用重構 - >重命名...重命名時,它將被重命名。
這實際上是不正確的。如果選擇器名稱中存在拼寫錯誤,編譯器將不會產生警告。它最終與使用硬編碼的魔術字符串沒有區別。 – Darren 2013-02-22 12:28:43
哦,嘿,你是對的。我覺得它過去常常會給出「未知的選擇器」警告......也許我很困惑。好吧。爲後人編輯。 – ipmcc 2013-02-22 12:32:31
如果您有嚴格的編譯器警告(您應該),如果該選擇器不存在任何地方,您將會收到錯誤。 – 2013-02-22 12:37:08