基本上,我想在主类中保存指针的子类中调用主类的函数。
我知道我可以让主类启动子类并将函数附加到它。但我不希望这样,我希望子类用它的init函数启动它
有什么方法可以从someClass调用doSomething吗?
一些显示我想要的基本代码:
在MainViewController.h中:
@class SomeClass;
@interface MainViewController : UIViewController {
SomeObject *someInformation;
SomeClass *someInstance;
}
@property (nonatomic, strong) SomeClass *someInstance;
-(void)doSomething:(id)sender;
@end
在MainViewController.m中:
@implementation MainViewController
@synthesize someInstance;
-(void)doSomething:(id)sender {
//do something to someInformation
}
@end
在SomeClass.h中:
@interface SomeClass : NSObject {
UIStuff *outstuff;
}
@property (strong, nonatomic) UIStuff *outstuff;
-(void)somethingHappened:(id)sender;
@end
在SomeClass.m中
@implementation SomeClass
@synthesize outStuff;
-(IBAction)somethingHappened:(id)sender {
//call doSomething to the main class that points to this class
}
@end
答案 0 :(得分:2)
你的术语不稳定。类不会“持有”其他类。在您的情况下,类MainViewController的实例具有指针到SomeClass类的对象。我不是迂腐;诸如此类的不良术语使人对人们对潜在和重要概念的理解产生怀疑。
也就是说,如果希望SomeClass对象能够向MainViewController实例发送消息,SomeClass对象需要对MainViewController对象的引用。从您发布的代码中,不存在此类引用。您需要扩展SomeClass接口以存储对MainViewController对象的显式引用,或者您可以通过委派使用稍微更间接(至少在概念上)的内容。但是,由于您没有提供特定于案例的信息,因此我们的解决方案将形成缺乏细节的洞察力。