Я получаю некоторые проблемы с циклическими ссылками (я думаю) между несколькими классами, которым требуются импортированные заголовки из-за подклассов или определений протокола. Я могу объяснить, почему все так устроено, но я не уверен, что это важно. По сути, эти классы управляют взаимными отношениями данных со многими.
Макет такой:
Класс A импортирует класс B, поскольку он является делегатом класса B и нуждается в определении протокола.
Класс B импортирует класс C, потому что это подкласс класса C.
Класс C импортирует класс A, поскольку он является делегатом класса A и нуждается в определении протокола.
Вот пример кода, который иллюстрирует проблему. Я получаю следующие ошибки: В классе A - «Не могу найти определение протокола для Class_B_Delegate».
В классе B - «Не удается найти объявление интерфейса для класса C - суперкласс класса B.» В классе C - «Не удается найти определение протокола для Class_A_Delegate».
Заголовок класса A:
#import <Foundation/Foundation.h>
#import "Class_B.h"
@protocol Class_A_Delegate
@end
@interface Class_A : NSObject <Class_B_Delegate> {
}
@end
Заголовок класса B:
#import <Foundation/Foundation.h>
#import "Class_C.h"
@protocol Class_B_Delegate <NSObject>
@end
@interface Class_B : Class_C {
}
@end
Заголовок класса C:
#import <Foundation/Foundation.h>
#import "Class_A.h"
@interface Class_C : NSObject <Class_A_Delegate> {
}
@end