Обычно лучше заранее объявить ваши классы в файле заголовка, а затем импортировать их заголовки в файл реализации, например:
// .h
#import <UIKit/UIKit.h>
@class MyView;
@class MyOtherView;
@class MyOtherOtherView;
@interface MyAppDelegate : NSObject <UIApplicationDelegate>
@property (strong, nonatomic) MyView *myView;
@property (strong, nonatomic) MyOtherView *myOtherView;
@property (strong, nonatomic) MyOtherOtherView *myOtherOtherView;
@end
// .m
#import "MyAppDelegate.h"
#import "MyView.h"
#import "MyOtherView.h"
#import "MyOtherOtherView.h"
@implementation MyAppDelegate
@synthesize myView;
@synthesize myOtherView;
@synthesize myOtherOtherView;
// methods
@end
Это поможет избежать ситуаций, в которых вы закончитес круговыми ссылками #import
.
Я также буду часто создавать файл заголовка просто для импорта других файлов заголовка для ясности, например, #import "MyViews.h"