我的主视图控制器上有一个名为“calculateThis”的方法。
这个方法显然是以
运行的int newValue = [self calculateThis:myVariable];
当我从视图控制器内部运行它时。
然后我创建了一个静态类,我需要从那里运行这个方法。
如何使用相对引用(例如super,superview,delegate等)从该类引用此方法。我不能使用委托上定义的类名,因为这个静态类在我的几个应用程序中使用。
我需要进入层次结构,我想象一个级别,然后访问那里的方法......
感谢。
答案 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 ...]
。