的情況下,我在Objective-C編程初學者,因爲我是通過一個例子來工作,我發現了一些好奇的多態性的Objective-C:多態性的NSMutableArray
// I know the message should have been mutableCopy, but this is how I came to find
// this ... anomaly
NSMutableArray *arrayCopy = [self.array copy];
[arrayCopy replaceObjectAtIndex:0 withObject:[NSNumber numberWithInt:2]];
此代碼編譯,但是它會使應用程序崩潰,並顯示一條消息,指出arrayCopy無法識別消息replaceObjectAtIndex:withObject :.
我的問題是,爲什麼會這樣編譯擺在首位(和它不產生上分析警告/問題)?鑑於NSMutableArray的從NSArray的繼承,arrayCopy到一個返回的NSArray分配如何能有效嗎?
在此先感謝。
那是的OBJ-C的美女,可以在運行時改變行爲。但是,這必須警告你,關於運行時警告和黃色泡沫。 – doNotCheckMyBlog
「在運行時改變行爲」是什麼意思?這不是多態性提供的嗎?在這種情況下,所有OO語言以及Objective-C都將具有此功能。 –