Aller au contenu

Valken

Membres
  • Compteur de contenus

    27
  • Inscription

  • Dernière visite

Valken's Achievements

Newbie

Newbie (1/14)

0

Réputation sur la communauté

  1. Je ne suis pas sûr de comment traiter une ligne du code: static MyClass *shared; Dans MyClass j'ai un élément récursif qui point sur myClass? Merci
  2. Bien qu'ARC soit intéressant, je ne vois pas en quoi il va me changer la vie pour mon singleton. Note que le code du singleton ici présenté, mis à part le @synchronized, provient de ce forum-ci. Merci pour les infos.
  3. Bonjour. Pour les besoin de la cause, j'ai besoin de créer un shared Instance d'une classe que j'initialize au lancement du logiciel. Il est à noter que les shared instance sont, comme beaucoup de chose, critiques en terme de "sécurité". Il faut éviter que lors de l'initialisation de la classe, une autre initialisation aie lieu. Nous voulons éviter, d'avoir deux instances distinctes alors qu'elles devraient être shared. De fait, je me demande si @synchronize() est suffisant pour faire une shared instance thread safe. Voici le code a évaluer, vos avis m'intéressent. (id)sharedInstance { @synchronized(self) { if(!_sharedInstance) _sharedInstance = [[[self class] alloc] init]; return _sharedInstance; } } -(id)init { @synchronized(self) { if(_sharedInstance) { [self dealloc]; self = [_sharedInstance retain]; } else { self = [super init]; if(self != nil) { } _sharedInstance = self; } return self; } }
  4. Au temps pour moi. Je code de manière tellement épisodique...
  5. Bonjour, Aligator a parfaitement raison de renvoyer sur la documentation Apple. Précisons tout de même ce point: Un NSArray ne peut enregistrer que des structures qu'il sait enregister à savoir, NSString, NSArray, NSDictionary et NSData. Cette règle est récursive, il est donc impossible d'avoir un NSArray contenant un NSArray qui contient un NSNumber. Cependant, l'on peut toujours encoder nos objets de manière à ce que cela fonctionne mais cela est une autre histoire. Le code suivant fonctionne : NSArray *myArray = [NSArray arrayWithObjects:@"Ma première entrée", @"Ma deuxième entrée", nil]; [myArray writeToFile:@"/Users/test/test.plist" atomically:NO]; Malheureusement, avec les données enregistrées comme cela il faut savoir où se trouve quelle information. Il est à mon sens plus judicieux d'utiliser un NSMutableDictionary et de faire des paires clef/valeur. Cordialement
  6. Salut tout le monde. Comme d'habitude je viens vous déranger avec des requêtes peu orthodoxes. Cette dernière est en soit assez simple mais comme d'habitude Apple © délaisse les tutoriels. Voici donc ma question: J'ai besoin d'un petit tutoriel expliquant comment envoyer des paquets midi, de la manière la plus simple, à un périphérique midi défini dans Audio/Midi Setup. Si j'obtenais le code en Ansi C cela serait bien mais en Objective-C cela peut aussi le faire. (Cela me fait simplement déposer le code midi à un endroit ou à un autre). Merci d'avance. Valken
  7. Bonjour, Je rebondis sur ce message car aujourd'hui je suis confronté à un problème de nature relativement similaire. En effet, j'autorise l'accès à des fonctions de l'application en passant par des raccourcis clavier. Cependant, je voudrais "flusher" le buffer clavier à chaque fois qu'un événement survient. Si l'utilisateur presse la touche retour, et reste pressé, je voudrais qu'il n'y ait qu'une seule entrée considérée par l'application. Je pense qu'il s'agit plus que d'un flush... Merci de votre aimable aide. Valken
  8. Pour moi ça marche mais la fonction applicationDidFinishLaunching n'était pas lancée. J'ai donc renommé celle-ci par : - (void)awakeFromNib { } Le résultat escompté est bien là. Valken
  9. Ah ben voilà, Ce n'est plus une question purement technique mais plutôt stratégique. J'arrive bien à faire ce que j'ai à faire avec mes Archiver Unarchiver. Cependant, lorsque je lis un fichier, il se peut qu'il soit "inexistant", c'est le cas au premier lancement de l'application, corrompu ou autre. Dès lors, est-ce que la méthode de vérifier si la résultante contient bien une valeur est acceptable pour tester la validité de l'objet temporaire. J'ai fait ça : myObject = [NSUnarchiver unarchiveObjectWithFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/myFile.plist"]]; if([myObject getBufferSize]) { ... ... } else { ... ... } Merci pour les avis. Valken
  10. Disons que ya plein de trucs que j'arrive à faire. Par contre, ce n'est pas 100% propre. Sinon, si ya un chef en CoreAudio et AudioUnit.... J'aurai une question plus pointue quand même. Merci encore pour les coups de mains. Valken
  11. Merci pour cette clarification. Je comprends un peu mieux le mécanisme maintenant. J'espère qu'au fil du temps, cela viendra. Vous vous doutez bien que je fais de la programmation hobbiste, donc sans prétentions Valken
  12. Re, Je vais faire mon boulet. Donc merci, avec les méthodes mentionnés j'arrive bien à sérialiser mes objets pour qu'ils soient sauvés avec la méthode writeToFile de NSMutableArray. Perfect, magic. Le contenu du fichier en question contient donc des données, sérialisée, et illisibles pour ma personne : <040b7374 7265616d 74797065 6481e803 84014084 84840963 6f634f62 6a656374 00848408 4e534f62 6a656374 00859284 8484084e 534e756d 62657200 8484074e 5356616c 75650094 84012a84 84016698 833333b3 3f869284 8484084e 53537472 696e6701 9484012b 08486967 68204465 668686> De type data. Maintenant, j'ai un problème lors de la lecture du fichier .plist J'utilise la méthode suivante : [myArray initWithContentsOfFile:[NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/Test.plist"]]; Si je passe dans le debuggeur, il m'annonce que l'array est vide, Ensuite, en toute logique, je dois sortir les éléments de l'array pour les déserialiser correctement. Mais ça, ce sera l'étape suivante, je suis un peu mélangé à ce sujet. Merci pour votre aide. Valken
  13. Merci pour ces informations. J'ai trouvé un excellent exemple mis en oeuvre qui m'aide beaucoup aussi. Enfin, la sérialisation est un super outil. Je me souviens avoir discuté, à l'époque, avec un ami qui me disait que c'était un des éléments forts de NextStep. C'est bien de ça dont on parle ? Valken
  14. Merci à vous deux. Pour commencer l'application de la sérialisation, j'ai fait un tout petit projet et une classe comme celle-là : @interface cocObject : NSObject { NSNumber *m_circleOfConfusionValue; NSString *m_cicrleOfConfusionName; } - (id)initWithCocValue:(NSNumber *)cocValue cocName:(NSString *)cocName; - (NSNumber *)cocValue; - (void)setCocValue:(NSNumber *)cocValue; - (NSString *)cocName; - (void)setCocName:(NSString *)cocName; @end Les fonctions, sont dans le .m Pas la peine de les annoncer, vous les connaissez. Le principe de la sérialisation est donc de rendre une objet compliant, en l'encodant dans un format parfaitement reconnu par les méthodes de sauvegarde ? Si j'ai donc compris, je ne peux pas encoder mon NSMutableArray mais je dois le remplir de valeur encodées ? Ma logique aurait été de faire : [myMutableArray addObject:cocObject]; NSData* dataArchived = [NSArchiver archivedDataWithRootObject:myMutableArray]; Et finalement, archiver dataArchived. Je vais donc aller bouquiner un peu car la logique même m'échappe encore pour le moment. Valken
×
×
  • Créer...