所以我是这个网站的新手,不太确定如何提出问题的约定是什么,但我只是从 Objective-C 开始,并且有一个与对象实例化有关的问题。
好的,所以我知道根类 NSObject 有类方法 alloc 和 init,这些方法被传递给任何继承 NSObject 的类,这几乎是每个类。我知道实例化对象的典型格式是这样的:
MyObject *m = [[MyObject alloc]init];
但是考虑到 MyObject 具有从 NSObject 继承的 alloc 和 init 方法,这在理论上也可以工作,考虑到 MyObject 和 NSObject 具有相同的 alloc 和 init 方法(假设该类没有覆盖它们):
MyObject *m = [[NSObject alloc] init];
它仅适用于实例化,但是当我尝试调用 MyObject 类中的任何方法时,会引发 NSException。当我将 NSObject alloc 切换回 MyObject alloc 时,它可以工作。我只是不明白为什么!这可能是一个基本问题,但有什么解释吗?
提前致谢!
杰克