Version d'une appli ou d'un plug-in

Bonjour,



Je suis désolé, mais je ne trouve pas. Il me semble pourtant que le sujet a déjà  été évoqué ici.



Je voudrais savoir :

- comment récupérer le numéro de version dune application ou d'un plug-in (je ne trouve rien ni dans NSApplication ni dans NSFileManager, à  part la récupération d'un NSDictionnary sans cette info)



- comment comparer deux numéros de versions.



Il est évident que cette fonction existe dans MacOS et iOS, mais je ne la trouve pas.



Merci...

Réponses

  • iDevKenoiDevKeno Membre
    juin 2012 modifié #2
    Essaye quelque chose comme ça
    <br />
    NSString *version = [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey];<br />




    iDevKeno
  • HerveHerve Membre
    Merci iDevKeno, bonne idée en effet.



    Par contre, c'est une appli qui doit savoir la version d'une autre (évidemment...)



    Peut-être en passant par NSFileManager + NSFileCreationDate et attributesOfItemAtPath:error: et en comparant les dates. Mais cette date est-elle celle de la création de l'appli, ou bien celle de son écriture sur le HD?
  • AliGatorAliGator Membre, Modérateur
    iDevKeno t'a donné la version qui utilise [NSBundle mainBundle], correspondant au bundle principal, donc celui de l'application courante.



    Si tu veux la version d'un plugin, un plugin étant juste un autre bundle qu'utilise l'application (bundle interne dans le package de l'application ou bundle externe en général dans Application Support, par exemple), il suffit de demander à  l'objet NSBundle qui représente le plugin et non pas au mainBundle qui représente l'application.



    Si tu veux la version d'une autre application, c'est le même principe. Il suffit de demander au bon Bundle.



    Regarde dans la doc de la classe NSBundle, tu as toutes les méthodes pour construire un objet NSBundle représentant un bundle existant (ou non) sur ton disque, il n'y a pas que le "Main Bundle" (et donc la méthode +mainBundle) dans cette classe pour récupérer une instance, même si c'est la plus utilisée ! Genre bundleWithPath par exemple... Enfin bref, tout est dans la doc !
  • HerveHerve Membre
    Oui, tout est dans NSBundle. Merci beaucoup (tard hier au soir, je n'avais pas tout lu)



    Merci à  tous les deux! image/thumbsup.gif' class='bbc_emoticon' alt='' />
Connectez-vous ou Inscrivez-vous pour répondre.