在Objective-C中,我希望有一个子类调用或调用父类的方法。就像在父级中分配了子级一样,子级执行了将调用父级方法的操作。像这样:

//in the parent class
childObject *newChild = [[childClass alloc] init];
[newChild doStuff];

//in the child class
-(void)doStuff {
    if (something happened) {
        [parent respond];
    }
}


我该怎么做呢? (如果您能彻底解释,我将不胜感激)

最佳答案

您可以为此使用委托:让childClass定义委托协议和符合该协议的委托属性。然后您的示例将更改为以下内容:

// in the parent class
childObject *newChild = [[childClass alloc] init];
newChild.delegate = self;
[newChild doStuff];

// in the child class
-(void)doStuff {
    if (something happened) {
        [self.delegate respond];
    }
}


这里有一个有关如何声明和使用委托协议的示例:How do I set up a simple delegate to communicate between two view controllers?

10-04 22:01