You are right that importing a header in .h makes it easier (in the short term). The reason for not doing this and importing it into the implementation file (.m) is to prevent name pollution, where all the names in the imported header are available when someone imports your header. Instead, when importing your header, you need to import only your functions / classes, and the rest - when implemented
Also, if you import the title in .h, this means that every code that imported your title should be recompiled when the third-party title changes, even if nothing has changed in your title explicitly. A forward declaration avoids this problem and forces you to recompile only those implementation files (.m) that actually use a third-party header
Attila
source share