In my case, this error was caused by cyclic "Import" operations in two classes: the header file for each class included the header of another class, resulting in the name of the Unknown type "ClassA"; did you mean "ClassB"? Mistake:

This is how my import instructions were set up when I received this error. In ClassA.h :
Import "ClassB.h"
In ClassB.h :
Import "ClassA.h"
To fix this, I used the declaration directive @class forward-declare ClassA in ClassB.h (this promises a preliminary compiler that ClassA is a valid class and that it will be available at compile time). For example:
In ClassA.h :
Import "ClassB.h"
In ClassB.h :
@class ClassA;
This fixed an error of type “ClassA” of an unknown type, but also introduced a new error: ClassB.m : The receiver type “ClassA” for the instance message is a forward declaration. For example:

To fix this new error, I had to import ClassA.h at the beginning of the ClassB implementation file ( ClassB.m ). Both errors are now resolved, and I get zero errors and warnings.
For example, now I have:
In ClassA.h :
Import "ClassB.h"
In ClassB.h :
@class ClassA;
In ClassB.m :
Import "ClassA.h"
Both error messages are now resolved.
Steve HHH Mar 02 2018-12-21T00: 00Z
source share