对象的不同实例共享指向内存中方法的相同指针

时间:2013-12-18 21:00:17

标签: objective-c nsobject

如果我创建了两个对象并对这两个对象执行了相同的方法,那么这两个方法的指针是同一对象类型的不同实例,相同。

示例:

NSObject *obj1 = [NSObject new];
NSObject *obj2 = [NSObject new];

[obj1 doSomething];
[obj2 doSomething];

这两个对象的doSomething指针是否相同。 我怎么能证明它是或者它不是?我被告知它是。

1 个答案:

答案 0 :(得分:1)

它是 - 为每个对象创建一个新的函数指针是没有意义的。 (这样做也是非常困难的。)

您可以通过e观察此事。 G。阅读NSObject类引用。该类有一个名为instanceMethodForSelector:的方法。这是一个类方法,所以它只返回一个不依赖于实例的函数指针,只返回类(当然还有选择器)。