Iphone 在两个不同类之间调用函数

Iphone 在两个不同类之间调用函数,iphone,objective-c,oop,Iphone,Objective C,Oop,我有一个在两个不同类中调用函数的小场景 method { NSLog("printing variables 1 & 2 of secondClass.m"); } 如何调用firstClass方法并将这些变量发送到类进行打印?根据要调用的函数类型,可以创建静态函数。为此,只需声明函数,如+(void)printA:(int)a和b:(int)b 并使用[Class2 printA:a和b:b]调用它,而不使用实例。或者,如果要调用非静态方法,可以使用委派协议 您可以创建一个协

我有一个在两个不同类中调用函数的小场景

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

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

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

并使用
[Class2 printA:a和b:b]
调用它,而不使用实例。或者,如果要调用非静态方法,可以使用委派协议

您可以创建一个协议,如

@protocol PrintJobReceiver
- (void)printVariableA:(int)a andB:(int)b;
@end
是否符合第2类的要求

@interface Class2: NSObject <PrintJobReceiver> { }
@end
@implementation Class2
- (void)printVariableA:(int)a andB:(int)b
{
   NSLog(@"a: %i b:%i",a,b);
}
@end
然后您可以调用
[delegate printVariableA:a和b:b]在类1中。我通常使用它,而不是将引用传递给整个类,以便只显示该类应该使用的函数(并且您不会尝试使用不应该使用的函数)

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