You don't need to include either header. Use a forward declaration.
// ClassA.h
#import <Foundation/Foundation.h>
@class ClassB;
@interface ClassA : NSObject {}
- (void)test:(ClassB *)input;
@end
and
// ClassB.h
#import <Foundation/Foundation.h>
@class ClassA;
@interface ClassB : NSObject {}
- (void)test:(ClassA *)input;
@end
Depending on your situation, you might also need to #import "ClassA.h"
inside of ClassB.m
, and vice-versa. But that won't cause any additional problems.