objective-c circular-dependency

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?