It is to my understanding that one should use a forward-class declaration in the event ClassA needs to include a ClassB header, and ClassB needs to include a ClassA header t
Use a forward declaration in the header file if needed, and #import
the header files for any classes you're using in the implementation. In other words, you always #import
the files you're using in your implementation, and if you need to reference a class in your header file use a forward declaration as well.
The exception to this is that you should #import
a class or formal protocol you're inheriting from in your header file (in which case you wouldn't need to import it in the implementation).