Besoin de vos tests éclairés

Nebuchad34Nebuchad34 Membre
18:14 modifié dans Vos applications #1
Bonsoir,
je viens de mettre en ligne une version estampillée RC 1 de Poker Manager, mon premier programme à  moi tout seul  :) et en cocoa bien sûr !

je suis d'ailleurs venu à  deux reprises demander de l'aide sur ce forum pour cette appli et on m'a répondu vite et bien, que demande le peuple ?!  ;)

Toutes les fonctions sont maintenants présentes (à  part les recaves mais je pense que ça attendra la version 1.5...) et à  priori je les ai testé en conditions réelles il n'y a pas l'air d'avoir de bugs.

Si vous voulez bien torturer cette pauvre appli dans tous les sens pour la faire craquer je serais ravi d'entendre vos critiques et suggestions.

PS : Faites attention sur les suggestions vous allez vous faire piéger. En effet, comme je débute je ne sais pas faire grand chose, alors suivant ce que vous me proposer de faire j'aurai certainement besoin de vous pour le faire, hé hé  :)

http://www.macupdate.com/info.php/id/30020/poker-manager

Réponses

  • Philippe49Philippe49 Membre
    janvier 2009 modifié #2
    Une petite suggestion esthétique après un très bref essai.
    Les NSColorWell rectangulaires sur ton panneau Jetons pourraient être mis en circulaire
    • soit (je n'ai jamais essayé) en sous-classant et en redéfinissant drawRect: ,
    • soit en faisant une custom NSView (ou NSControl) et utilisant les NSColorPanel en direct

    -(IBAction) ...
    NSColorPanel * panel=[NSColorPanel sharedColorPanel];
    [panel setDelegate:self];
    [panel setColor:rowValue];
    [panel makeKeyAndOrderFront:self];

    -(void) changeColor:(id)sender {
    NSLog(@changing color);
    NSColor * newColor=[sender color];
    }


    Signalons aussi que sur ce site a été déposé un ColorPanel avec gradients
  • CéroceCéroce Membre, Modérateur
    18:14 modifié #3
    Certes ce serait plus esthétique, mais l'utilisateur ne se rendrait plus compte qu'il s'agit de Color Wells. Mauvaise idée à  mon avis.
  • Nebuchad34Nebuchad34 Membre
    18:14 modifié #4
    Merci !

    Ce qui m'inquiète plus moi, c'est la mémoire.
    Le prog monte assez vite à  70 Méga, et j'ai remarqué que lorsque je ferme un document, très peu de mémoire est libérée. Du coup si on ouvre et ferme trois ou quatre documents et bien on monte à  150 méga sans problème.

    Je suis donc revenu dans le châpitre "gestion de la mémoire" du Aaron Hillegass afin de gérer les désalocations d'NSMutableArray temporaires et de NSSrings temporaire, ça fait déjà  baisser la consommation, mais ça ne semble pas être suffisant.

    Il y a d'ailleurs des choses que je ne comprends pas.

    J'ai une NSMutableArray nommé Joueurs
    un controlleur NSArrayController associé nommé joueurController
    une NSTableView qui affiche la liste des joueurs nommée listeJoueurs.

    je crée un joueur en faisant *j=[joueurController newObject]
    le retain est à  1, logique...

    ensuite je fait un [self startObservingJoueur:j] puis [joueurController addObject:j];
    eh bien juste après ce addObject, le retain de j passe à  4 !!!

    et si, plus tard, je supprime l'objet en question [joueurController removeObject:j];
    eh bien le retain de j reste à  4, et il ne sera donc jamais désalloué !

    Je vous donne l'exemple avec les joueurs, mais c pareil avec les tables et les rounds, alors ça en fait du monde qui n'est jamais désalloué en cas de suppression. De même, comment je fait poru qu'ils soient tous libérés quoi qu'il arrive quand je ferme le document ??


  • schlumschlum Membre
    18:14 modifié #5
    Utilise Instruments ou MallocDebug pour ça... Tu sauras très précisément où a été allouée la mémoire non libérée.
  • Nebuchad34Nebuchad34 Membre
    18:14 modifié #6
    Je ne sais pas du tout m'en servir mais je vais jeter un oeil
  • Nebuchad34Nebuchad34 Membre
    18:14 modifié #7
    Ah ha !

    En utilisant "leaks" de instrument je me suis rendu compte de plusieurs trucs !

    D'abord, le "speech synthetizer qui n'étais jamais désalloué et qui pompait de la mémoire en continu pour rien.

    Ensuite, le NSDictionnary que j'utilisait pour stocker les donner à  enregistrer du fichier ! j'ai rajouté un autorelease et , comme dirait iPapy "BOOM !" -30Mo de consommation mémoire en moins d'un seul coup.

    Je vais creuser un peu pour améliorer encore. Mais j'avoue que ces outils c'est bluffant d'efficacité !
  • orfaitorfait Membre
    18:14 modifié #8
    Alors comme ça, on s'offre une news sur MacGeneration ??
     
  • Nebuchad34Nebuchad34 Membre
    18:14 modifié #9
    Oui, c'est la grande classe !  :kicking:

    Malheureusement, on m'a informé aujourd'hui d'un bug dans ennuyeux. J'avais oublié d'initialiser une NSString (pour le nom du joueur)

    ça fonctionnait chez moi mais évidemment ailleurs ça plantait ! j'ai donc fait une mise à  jour mais MacUpdate a tardé à  faire la mise à  jour, et j'attend maintenant que macgé en fasse de même.
  • schlumschlum Membre
    18:14 modifié #10
    Alors, voyons ce programme si les algos sont efficaces  :fouf): ;)
Connectez-vous ou Inscrivez-vous pour répondre.