Exemples obsolètes!

tabliertablier Membre
décembre 2010 modifié dans Coin canapé & détente #1
N'étant pas un grand spécialiste du NSTask, j'ai voulu regarder les exemples donnés par Apple: Moriarity et MP3 Player.
Ces deux exemples n'ont pas été mis à  jour depuis Janvier 2003 !!
Pour les mettres à  jour, il faut avoir un Xcode 2.5 puis sous Xcode 3.2.x faire "Upgrade all targets in project to native".
Si MP3 Player accepte de fonctionner immédiatement, Moriarity parait vouloir utiliser la base de donnée db typique de OS9 et Classique. Si cette base de donnée n'existe pas sous 10.6, Moriarity demande sa mise à  jour:
Sorry, Moriarity's 'locate' database is missing or empty.  In a terminal, as root run '/usr/libexec/locate.updatedb' and try Moriarity again.
/usr/libexec/locate.updatedb existe bien. Je l'ai lancé et pour l'instant j'attends que ça se termine.

Enfin, si apple mettait à  jour les exemples, ça serait quand même plus simple!

En définitive Moriarity me sort une erreur du type: Jam is deprecated and has been removed....
J'abandonne!!

Réponses

  • AliGatorAliGator Membre, Modérateur
    07:35 modifié #2
    C'est vrai qu'il y a certains exemples qui commencent à  dater voire ne sont plus du tout d'actualité...

    N'hésite pas à  faire un mail de retour à  Apple, et à  utiliser les liens pour faire le feedback sur les sites d'exemple, si on dit rien c'est pas comme ça qu'ils vont se bouger !!
  • laudemalaudema Membre
    07:35 modifié #3
    dans 1291208468:

    puis sous Xcode 3.2.x faire "Upgrade all targets in project to native".
    ....

    En définitive Moriarity me sort une erreur du type: Jam is deprecated and has been removed....
    J'abandonne!!

    Faut pas :)
    Encore que pour les NSTask il y a quelques bons exemples dans le livre de Hillegass et dans la doc, de mémoire..
    Tu as aussi FinalCutPro_appleEvents mais il faut avoir FinalCutPro pour le faire fonctionner..
    Sinon pour le Jam is deprecated and has been removed"... Tu dois faire comme tu as écrit Upgrade All Targets in Project to Native dans le menu Project de Xcode. Après tu verras une nouvelle target et un nouvel exécutable avec "(Upgraded)" ajouté au nom de l'appli (que tu auras renommée)
    Pour éviter de passer par la 2.5 il suffisait de changer l'extension du projet en .xcodeproj il s'ouvre alors avec Xcode qui dit qu'il va le mettre à  jour et demande un nouveau nom.

    pour le reste Moriarity fonctionne chez moi mais je ne sais plus si j'ai fait autre chose que les deux manips que je viens de décrire (il y a longtemps que j'utilise locate dans le terminal pour localiser rapidement des fichiers).
  • tabliertablier Membre
    07:35 modifié #4
    Pour éviter de passer par la 2.5 il suffisait de changer l'extension du projet en .xcodeproj il s'ouvre alors avec Xcode qui dit qu'il va le mettre à  jour
    Je ne savais pas cela! mais comme j'ai encore Xcode 2.5 sous OSx 10.4, ça roule!
    Sinon pour le  Jam is deprecated and has been removed"... Tu dois faire comme tu as écrit Upgrade All Targets in Project to Native dans le menu Project de Xcode. Après tu verras une nouvelle target et un nouvel exécutable avec "(Upgraded)" ajouté au nom de l'appli (que tu auras renommée)
    Oui, j'ai bien fais cela, et j'ai toujours le  Jam machin chose.
    je vais retourner sur le site Apple pour voir si je leur mets un message.
  • laudemalaudema Membre
    07:35 modifié #5
    Tu as raison, j'ai regardé les différences entre l'exemple d'Apple et celui que j'ai qui fonctionne (il y a longtemps que j'ai eu à  affronter tes problèmes et j'ai oublié ce que j'avais dû faire pour le faire fonctionner).
    Il faut rajouter les #import <CoreServices/CoreServices.h> (mis dans TaskWrapper.h en ce temps là ) après avoir ajouté le framework CoreServices au projet bien sûr.
    Pourquoi ? je ne sais plus, probablement lu ça quelque part via Google
  • tabliertablier Membre
    07:35 modifié #6
      :P  La modif conseillée est très bonne!! ça marche, merci!
  • tabliertablier Membre
    07:35 modifié #7
      >:(  Au deuxième essai, ça ne marche plus! toujours ce Jam machin chose.
    Du coup, j'ai refait le projet sous 10.6, et là   plus d'ennuis, ça marche à  tout les coups!
    Comme Moriarty était l'ennemi de notre détective, le projet qui marche porte le nom de son ami: Watson!
    (en pièce jointe)
  • laudemalaudema Membre
    07:35 modifié #8
    Un petit exemple, simple et facilement réutilisable, recopié depuis http://borkware.com/quickies/do-search?search=nsarray
    <br /> NSTask *task;<br />&nbsp; &nbsp; task = [[NSTask alloc] init];<br />&nbsp; &nbsp; [task setLaunchPath: @&quot;/bin/ls&quot;];<br /><br />&nbsp; &nbsp; NSArray *arguments;<br />&nbsp; &nbsp; arguments = [NSArray arrayWithObjects: @&quot;-l&quot;, @&quot;-a&quot;, @&quot;-t&quot;, nil];<br />&nbsp; &nbsp; [task setArguments: arguments];<br /><br />&nbsp; &nbsp; NSPipe *pipe;<br />&nbsp; &nbsp; pipe = [NSPipe pipe];<br />&nbsp; &nbsp; [task setStandardOutput: pipe];<br /><br />&nbsp; &nbsp; NSFileHandle *file;<br />&nbsp; &nbsp; file = [pipe fileHandleForReading];<br /><br />&nbsp; &nbsp; [task launch];<br /><br />&nbsp; &nbsp; NSData *data;<br />&nbsp; &nbsp; data = [file readDataToEndOfFile];<br /><br />&nbsp; &nbsp; NSString *string;<br />&nbsp; &nbsp; string = [[NSString alloc] initWithData: data<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  encoding: NSUTF8StringEncoding];<br />&nbsp; &nbsp; NSLog (@&quot;woop!&nbsp; got&#092;n%@&quot;, string);<br /><br />
    
Connectez-vous ou Inscrivez-vous pour répondre.