的情况下,我在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都将具有此功能。 –