In Objective-c when we using object of one class into another class by convention we should forward declare the class in .h file, i.e. @class classname;. And sh
This just to say compiler we have a class with name xx if you use @class xx;
Because you don't need its properties/method right now.
And in the next case, you also need the property and methods because you will have to access them. That's the issue if you use @class xx in your .h file and don't import xx.h. Then declaring an object of xx will not generate and error but accessing it's method will generate warning and accessing property generate an error