2017-02-14 11 views
0

Il s'agit fondamentalement d'une question de conception. J'ai un contrôleur avec un grand nombre de lignes de code dans mon application. Je veux réduire le nombre de lignes et pour cela j'ai utilisé une catégorie.Faut-il appeler une méthode de catégorie de soi

Comme si j'avais sous-classe UIViewController et j'ai créé une catégorie sur cette sous-classe. Maintenant, je veux appeler une méthode de catégorie de la sous-classe UIViewController.

J'ai une question dois-je appeler [self categoryMethod] ou non?

Merci pour la réponse!

+0

Quelle catégorie de classe vous créez? en fonction de cela votre appel fonctionnera. s'il vous plaît laissez-nous savoir peu de code ou classe de catégorie. – CodeChanger

+0

Bonjour @CodeChange J'ai éditer ma question. Désolé, je ne peux pas ajouter de code ici. –

+0

Pourquoi pas? vous appelez la méthode pour l'instance spécifique de UIViewController que vous utilisez, il ne fera rien à l'autre instance – Tj3n

Répondre

0

Oui, vous pouvez appeler la méthode de catégorie avec self objet comme son objet de même classe UIVIewController donc pas n'importe quel problème.

Voici quelques-uns plus en détail pourquoi nous avons besoin Catégorie:

Vous utilisez des catégories pour définir des méthodes supplémentaires d'une classe, même existant dont le code source est disponible pour vous, sans subclassing. Vous utilisez généralement une catégorie pour ajouter des méthodes à une classe existante , telle que définie dans le Cocoa frameworks. Les méthodes ajoutées sont héritées par les sous-classes et sont indiscernables à runtime à partir des méthodes d'origine de la classe. Vous pouvez également utiliser catégories de vos propres classes:

  • Distribuez la mise en œuvre de vos propres classes dans différents fichiers source, par exemple, vous pouvez grouper les méthodes d'une grande classe en plusieurs catégories et placez chaque catégorie dans un fichier différent.
  • Déclarez les méthodes privées.

Vous ajoutez des méthodes à une classe en les déclarant dans un fichier d'interface sous un nom de catégorie et les définir dans un fichier de mise en œuvre sous le même nom. Le nom de la catégorie indique que les méthodes sont une extension à une classe déclarée ailleurs, pas une nouvelle classe.

donc basé sur cette description vous pouvez distribuer votre code UIViewController en petits morceaux (fichiers) comme category et l'appeler de votre classe.

Une autre façon de réduire votre code de classe unique est diviser votre ViewController en petite partie, comme vous avez TableView, Header View et Footer View, Navigation View vous pouvez donc créer des sous classe de ce Tout et écrire un code lié dans cette classe respective et la main ViewController La classe contient seulement des données passing et des méthodes générales.

Utilisez ContainerView est la meilleure pratique pour distribuer votre UI et le code dans petite-petite partie.

Espérons que cette volonté vous aide à comprendre ce que vous avez besoin!

Codage heureux.