假设我有这个类及其子类
@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 并找到最接近顶部的方法?