objective c - ¿Objective-C permite dependencias circulares?
circular-dependency (1)
Importar una clase no es herencia. Objective-C no permite la herencia circular, pero sí permite las dependencias circulares. Lo que haría es declarar las clases en los encabezados de cada uno con la directiva @class
y hacer que el archivo de implementación de cada clase importe el encabezado del otro. Esto es:
ClassA.h
@class ClassB;
@interface ClassA : NSObject {
ClassB *foo;
}
@end
ClassA.m
#import "ClassB.h"
@implementation ClassA
// Whatever goes here
@end
ClassB.h
@class ClassA;
@interface ClassB : NSObject {
ClassA *foo;
}
@end
ClassB.m
#import "ClassA.h"
@implementation ClassB
// Whatever goes here
@end
Estoy reescribiendo una biblioteca de Java en Objective-C y me he encontrado con una situación extraña. Tengo dos clases que se importan. Es una dependencia circular. ¿Apoya Objective-C tal situación? Si no, ¿cómo me recomienda reescribirlo?