如何在类中的对象内调用类函数?

时间:2011-06-24 07:42:28

标签: objective-c xcode

基本上,我想在主类中保存指针的子类中调用主类的函数。
我知道我可以让主类启动子类并将函数附加到它。但我不希望这样,我希望子类用它的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

1 个答案:

答案 0 :(得分:2)

你的术语不稳定。类不会“持有”其他类。在您的情况下,类MainViewController的实例具有指针到SomeClass类的对象。我不是迂腐;诸如此类的不良术语使人对人们对潜在和重要概念的理解产生怀疑。

也就是说,如果希望SomeClass对象能够向MainViewController实例发送消息,SomeClass对象需要对MainViewController对象的引用。从您发布的代码中,不存在此类引用。您需要扩展SomeClass接口以存储对MainViewController对象的显式引用,或者您可以通过委派使用稍微更间接(至少在概念上)的内容。但是,由于您没有提供特定于案例的信息,因此我们的解决方案将形成缺乏细节的洞察力。