Plantage
tablier
Membre
J'ai du faire une c....rie car ça plante. Ca plante sur la ligne: "resultat =" et franchement je ne vois pas pourquoi!
quelqu'un peut-il m'aider?
quelqu'un peut-il m'aider?
- (IBAction)a_lire:(id)sender<br />{<br />NSTask *tache ;<br />NSPipe *pope ;<br />NSFileHandle *poing ;<br />NSString *nibOri, *tmp0, *strOri, *resultat ;<br /><br /> nibOri = [NSApp prise_Dossier:@"fichier nib original ?" :NO :YES :[NSArray arrayWithObject:@"nib"] ] ; // sélection du .nib<br /> if ([nibOri length] == 0) return ;<br /> tmp0 = [[nibOri lastPathComponent] stringByDeletingPathExtension] ;<br /> strOri = [NSApp nouveau_Fichier:tmp0 :@"fichier strings?" :YES :[NSArray arrayWithObject:@"strings"] ] ; // choix du fichier de sortie<br /> if ([nibOri length] == 0) return ;<br /><br /> tache = [[NSTask alloc] init] ; // initialise<br /> pope = [[NSPipe alloc] init] ; // initialise<br /> [tache setLaunchPath:ibnibtool]; // ibnibtool = /Developer/usr/bin/nibtool<br /> [tache setArguments:[NSArray arrayWithObjects:@"-L", nibOri, nil] ]; // -L nomdu.nib<br /> [tache setStandardOutput:pope]; // Sortie sur un pipe<br /> poing = [pope fileHandleForReading]; // récupère le filehandle<br /> [tache launch];<br /> <br /> resultat = [[NSString alloc] initWithData:[poing readDataToEndOfFile] encoding:NSUnicodeStringEncoding] ; // plantage ici!<br /><br /> [pope release] ;<br /> [tache release];<br /> [resultat release] ;<br />}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le plus simple pour valider ça c'est soit d'attendre la fin de ta NSTask avant de faire qqch de ta NSPipe de sortie, soit de cumuler la sortie via une boucle while : Bon honnêtement je vois pas non plus ce qui t'empêcherai de tout lire d'un coup non plus mais bon. C'est à tenter.
J'abandonne!!!
J'ai réalisé ma fonction en applescript (do shell script "commande") et en 10 minutes ça a marché. cela m'a permis de voir que le code en Obj-C avec (NSTask) est trop rapide et ce termine avant que l'application UNIX soit lancée.