cocoa - 引用父级的方法

时间:2010-03-24 18:32:28

标签: iphone objective-c cocoa-touch

我的主视图控制器上有一个名为“calculateThis”的方法。

这个方法显然是以

运行的
int newValue = [self calculateThis:myVariable];

当我从视图控制器内部运行它时。

然后我创建了一个静态类,我需要从那里运行这个方法。

如何使用相对引用(例如super,superview,delegate等)从该类引用此方法。我不能使用委托上定义的类名,因为这个静态类在我的几个应用程序中使用。

我需要进入层次结构,我想象一个级别,然后访问那里的方法......

感谢。

3 个答案:

答案 0 :(得分:1)

在NSObject或NSObject的相关子类的类别中定义实用程序方法。 你做过的。

将(id)发件人添加到您的方法将起作用。然后您的方法可以引用调用它的对象。像这样的东西。

+(int)calculateThis:(id)sender userInfo:(id)info;
然后你的电话就变成了。

int newValue = [NSObject calculateThis:self userInfo:myVariable];

答案 1 :(得分:0)

如果您的目的是创建一个可以在不初始化的情况下使用的类,那么可以使用类方法。例如,如果我想使用MyClass方法创建一个名为doSomethingWith:的类,我将定义以下内容:

MyClass.h

@interface MyClass : NSObject {

}

+(void)doSomethingWith:(id)thisObject;

@end

MyClass.m

#import "MyClass.h"

@implementation MyClass

+(void)doSomethingWith:(id)thisObject
{
    // Your code goes here.
}

@end

要在另一个类中引用此方法,您可以使用MyClass的类对象,如下所示:

[MyClass doSomethingWith:@"Hello, World!"];

这不是一个典型的Cocoa或Cocoa Touch设计模式,但对于像计算这样的事情可以很方便。

答案 2 :(得分:0)

你在谈论超类吗?如果是,请使用[super ...]