Déclaration de @property dans une Category?

Bonjour à  tous,

Pour des besoins purement pratiques, j'aimerai écrire une category de UIViewController afin d'y rajouter une property (en assign) du genre -navigationController, -parentViewController.
Je suis parti sur une app assez custom au niveau de la navigation. Tellement custom qu'une sous-classe de UINavigationController (qui est déjà  déconseillé par Apple) ne me va plus du tout.
L'idée est donc de réécrire mon propre navigationController en le faisant hériter de UIViewController. Seulement, il faudra que je puisse assigner ce navController perso à  chacun des controller qui passera entre ses mains.

Quels sont les potentiels problèmes que je pourrai rencontrer en rajoutant une @property dans une category?

Réponses

  • AliGatorAliGator Membre, Modérateur
    10:21 modifié #2
    Tu ne pourras pas faire de @synthesize, car un @synthesize maProp génère une ivar et qu'on ne peux pas générer une ivar dans une catégorie.
    Tu seras obligé de passer par les "associative objects" du runtime pour pouvoir faire ça, c'est la seule solution que je connaisse pour palier à  ça.
  • 10:21 modifié #3
    dans 1327085402:

    Tu ne pourras pas faire de @synthesize, car un @synthesize maProp génère une ivar et qu'on ne peux pas générer une ivar dans une catégorie.
    Tu seras obligé de passer par les "associative objects" du runtime pour pouvoir faire ça, c'est la seule solution que je connaisse pour palier à  ça.

    Ah putain merci ! J'avais totalement zappé les associative objects.. on en avait déjà  discuté y'a .. un bon moment :D
    Merci
  • AliGatorAliGator Membre, Modérateur
    10:21 modifié #4
    Oui le souci c'est que du coup c'est un peu chiant à  gérer si tu as 50 propriétés à  rajouter, car faut coder les getter/setter à  la main avec du code de runtime... bon ça se fait, hein, mais c'est un peu lourd en syntaxe ^^
  • 10:21 modifié #5
    dans 1327106826:

    Oui le souci c'est que du coup c'est un peu chiant à  gérer si tu as 50 propriétés à  rajouter, car faut coder les getter/setter à  la main avec du code de runtime... bon ça se fait, hein, mais c'est un peu lourd en syntaxe ^^

    Nan ça va là  c'est vraiment me faire mon navigation controller perso et donc pouvoir y accéder via n'importe quel UIViewController 
Connectez-vous ou Inscrivez-vous pour répondre.