В зависимости от типа функции, которую вы хотите вызвать, вы можете создать статическую функцию. Для этого просто объявите функцию, как + (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
вы затем использовать для печати (вы хотите, чтобы передать экземпляр от класса 2)
@interface Class1:NSObject
{
id<PrintJobReceiver> delegate;
}
@property (nonatomic,readwrite, retain) id<PrintJobReceiver> delegate;
@end
@implementation Class1
@synthesize delegate;
@end
, то вы можете позвонить по телефону [delegate printVariableA:a andB:b];
в классе 1. Обычно я использую это вместо передачи ссылки на весь класс, чтобы показывать только функции, которые должны использоваться классом (и вы не получаете соблазн использовать функции, которые не должны быть)