Comment faire pour passer de xcode 3.2.5 à  xcode 4.2 ?

Bonjour,



Je vous ai écouté et vais donc passer à  xcode 4.2 mais je ne souhaite pas utiliser ARC et les story board.

J' ai deux questions.

La premiere concerne les mises à  jour. Qu' est je dois faire lorsque je veux faire une mise à  jour d' un projet créé avec xcode 3.2.5 ?

J ouvre le projet avec 4.2 et j' ai une signalétique (petite) triangle jaune qui me dit que je dois conformer mon projet. Je le fais. C' est bon jusque la ?

Ensuite je vais dans buid phases, dans compile sources et je met le flag "-fobjc-no-arc" sur tous les fichiers. Meme le main.m ? qui n' existait pas dans la version 3.2.5 d' ailleurs. Il a du être créé avec la conformation du projet. Je met le flag aussi sur le AppDelegate ?

C' est bizarre il n' y a pas de .h dans compile sources pourtant je vois mes ancien fichier .h sur la fenêtre de gauche en déroulé en dessous du nom du projet et de 1 target, iOS SDK 5.0 c' est normal ?

ça c' est pour les mises à  jour.



Pour les nouvelles classes que je vais créer, pratiquement sans utiliser ARC je dois faire un code comme sur l' ancienne version en tout déclarant et en rajoutant le flag "-fobjc-no-arc" ?

Par exemple :


@interface ProjetViewController : UIViewController {<br />
<br />
IBOutlet UIButton *btBouton;<br />
<br />
}<br />
<br />
- (IBAction)actionBouton: (id)sender;<br />
<br />
@property (nonatomic, retain) IBOutlet UIButton *btBouton<br />
<br />
@end


et dans le .m


<br />
@synthesize btBouton;<br />
<br />
- (IBAction)actionBouton: (id)sender{<br />
View2ViewController *controllerView2 = [[[View2ViewController alloc] init] autorelease];<br />
[controllerView2 setModalTransitionStyle:UIModalTransitionStyleCoverVertical];<br />
[self presentModalViewController:controllerView2 animated:YES];<br />
}<br />
<br />
- (void)dealloc {<br />
[btBouton release];<br />
    [super dealloc];<br />
}<br />
<br />
@end<br />




ou alors je dois utiliser la nouvelle manière comme on vois dans les cours et ne pas faire comme dans l' ancienne version ?

J' espere que c' est assez compréhensible :-)

Merci.

Réponses

  • zoczoc Membre
    Lors de la migration d'un projet Xcode 3 vers 4, les options du projet ne sont pas modifiées. Vu que ARC et les Storyboards n'existaient pas sous Xcode 3, alors ces options seront désactivées par défaut après la migration...



    Pas besoin de rajouter l'option -fobjc-no-arc, donc, ni pour les anciens fichiers, ni pour les nouveaux.
  • psychoh13psychoh13 Mothership Developer Membre
    L'option c'est -fno-objc-arc, mais tu ne devrais pas à  avoir à  la mettre. Au passage, il n'y a pas de raison de ne pas utiliser ARC, aussi tu devrais supprimer cette ivar.
  • J889J889 Membre
    Merci pour vos reponses.

    Cette "ivar" ? C est quoi ?

    Je n utilise pas ARC pour que les anciens iOS puissent avoir accès aux applications.
  • J889J889 Membre
    Au passage, je me suis trompé de forum. Je voulais envoyer dans le forum utilisation des class mais iOS.

    Mille excuse.
  • XCode prévoit la migration des projet antérieur vers des projet ARC.



    ARC te permet d'économiser du temps et des lignes de code pour la gestion mémoire.

    Même si tu auras besoin encore pour certain projet de faire des dealloc.
  • CéroceCéroce Membre, Modérateur
    'J889' a écrit:


    Cette "ivar" ? C est quoi ?




    Instance Variable.
  • AliGatorAliGator Membre, Modérateur
    'Grégoire' a écrit:
    XCode prévoit la migration des projet antérieur vers des projet ARC.
    Oui mais il n'est compatible que pour les OS à  partir de iOS4.
    'J889' a écrit:


    Je n utilise pas ARC pour que les anciens iOS puissent avoir accès aux applications.
    Et encore sous iOS4, les "weak references" ne sont pas "zeroing", autrement dit elles ne se mettent pas à  "nil" automatiquement quand plus personne ne pointe dessus (autrement dit, sous iOS4, weak est synonyme de unsafe_unretained). La fonctionnalité de ZWR (zeroing weak references, remise à  nil des pointeurs quand l'objet pointé est détruit) n'est disponible qu'à  partir d'iOS5 (ou alors il faut utiliser des astuces comme PLWeakCompatibility qui réimplémente le système pour toi si tu as vraiment besoin des ZWR pour iOS4)



    Après, si l'application est compatible iOS4 minimum, et de nos jours cela n'a plus grand intérêt de rendre une appli compatible pour les iOS antérieurs, alors oui ARC est une option possible et Xcode permet d'y migrer facilement. Bien que migrer vers ARC ne signifie pas forcément "ne plus rien faire en gestion mémoire" et qu'il est quand même bon voire nécessaire de connaà®tre les règles de base (ARC ne veut pas dire "plus de gestion mémoire du tout", attention)
  • Merci pour vos réponses.
Connectez-vous ou Inscrivez-vous pour répondre.