如果我不得不在對象上調用「respondsToSelector:」,那麼將方法定義爲可選對象對我來說又有什麼用處呢?協議中可選方法的要點是什麼?
對於exmple,讓我們說我有這樣
id<MyProtocol> myObj = [[MyClass alloc] init];
if([myObj respondsToSelector:@selector(aMethod)]){
[myObject aMethod];
}
一些代碼,只要「MyClass的」實現「amethod方法」,會不會這個代碼的運行完全相同的羯羊或不MyProtocol定義「amethod方法」 ?
我可以看到使用純粹從代碼可讀性的角度來定義這個可選協議,但不明白它是否從技術角度來看實際上有任何影響(除了不必在頭中聲明方法) 。
感謝BoltClock。我瞭解可能實施該方法的價值,也許不是。但我不明白在協議中如何定義它,如果我需要調用respondsToSelector。 – morgancodes
@morgancodes:它似乎純粹是爲了語義。 – BoltClock
那麼,對於人們而言,比對於機器而言更多? – morgancodes