假设我有这个类及其子类
@interface MySuperClass
- (void)open:(id)type value:(id)value;
- (void)openWebpage:(NSURL*)url;
@end
@interface MySubClass
- (void)openWebpage:(MyBookmarkClass*)bookmark;
@end
并且调用[someMySubclass openWebpage:someBookmark]调用[super open:BookmarkClass value:self.url]。并open:value调用[self openWebpage:url]。
我意识到这是非常做作的,但我遇到了类似的情况。我的困惑是,即使[self openWebpage:url]在被调用时MySuperClass,当它被执行时 openWebpage: 正在调用者的上下文中运行MySubClass,它不知道如何处理NSURL.
所以我的问题是:有没有办法强制在原始上下文中调用某些东西?或者让它尽可能多地调用 super 并找到最接近顶部的方法?