调用两个不同类之间的函数

时间:2010-08-31 13:17:22

标签: iphone objective-c oop

我有一个小方案来调用两个不同类中的函数。

method
{
    NSLog("printing variables 1 & 2 of secondClass.m");
}

如何调用firstClass方法并将这些变量发送到类进行打印?

1 个答案:

答案 0 :(得分:1)

根据您要调用的函数类型,您可以创建静态函数。为此,只需声明+ (void)printA:(int)a andB:(int)b;

之类的函数

并在没有实例的情况下使用[Class2 printA:a andB:b]进行调用。或者,如果要调用非静态方法,可以使用委派协议。

您可以创建类似

的协议
@protocol PrintJobReceiver
- (void)printVariableA:(int)a andB:(int)b;
@end

让它符合class2

@interface Class2: NSObject <PrintJobReceiver> { }
@end
@implementation Class2
- (void)printVariableA:(int)a andB:(int)b
{
   NSLog(@"a: %i b:%i",a,b);
}
@end

并在Class1设置委托,然后您将用于打印(您将要传递Class2的实例)

@interface Class1:NSObject
{
   id<PrintJobReceiver> delegate;
}
@property (nonatomic,readwrite, retain) id<PrintJobReceiver> delegate;
@end
@implementation Class1
@synthesize delegate;
@end

然后你可以在Class1中调用[delegate printVariableA:a andB:b];。我通常使用它而不是传递对整个类的引用,以便只显示应该由类使用的函数(并且你不会试图使用你不应该使用的函数)