C'est ma compréhension que l'on devrait utiliser une déclaration de classe dans le cas ClassA doit inclure un ClassB en-tête, et ClassB doit inclure un en-tête ClassA afin d'éviter toute circulaire d'inclusions. Je comprends aussi qu'un #import
- il d'une simple ifndef
, de sorte que l'inclure n'arrive.
Ma demande est la suivante: Quand est-on utiliser #import
et quand doit-on utiliser @class
? Parfois, si j'utilise un @class
déclaration, je vois une commune d'avertissement du compilateur telles que les suivantes:
warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.
Aimerais vraiment comprendre le présent, à l'opposé d'une suppression de l' @class
de l'avant-déclaration et en jetant un #import
dans le silence les avertissements du compilateur est de me donner.