IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Objective-C Discussion :

TableView vide de toutes données [Objective-C]


Sujet :

Objective-C

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut TableView vide de toutes données
    Bonjour,

    je n'arrive pas à faire afficher les données que j'ai stocké dans ma tableView.

    J'ai pourtant bien implémenté les méthodes nécessaires pour utiliser une tableView...

    Voici les méthodes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return 0;
    }
     
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return [self.afficheResultat count];
    }
     
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
    static NSString *CellIdentifier = @"Cell";
     
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
     
    if (cell == nil) {
            cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }
        cell.textLabel.text=[[afficheResultat objectAtIndex:indexPath.row] objectForKey:@"categorie"];
        cell.detailTextLabel.text=[[afficheResultat objectAtIndex:indexPath.row] objectForKey:@"cp_offre"];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
        return cell;
    }
     
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        UIViewController *targetViewController = [[NSClassFromString(@"PageOneViewController") alloc] initWithNibName:@"PageOneViewController" bundle:nil];
        [self.navigationController pushViewController:targetViewController animated:YES];
    [targetViewController release];
    }
    Si vous avez besoin de plus d'informations, n'hésitez pas à demander!
    Merci d'avance pour le temps que vous consacrerez à m'aider.

  2. #2
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Je viens de m'apercevoir en essayant un NSLog dans le tableView:cellForRowAtIndexPath: que cette méthode n'était apparemment pas appelée.

    Comment est-ce possible ?

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    117
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 117
    Points : 58
    Points
    58
    Par défaut
    As-tu créé ta tableView avec IB ou à la main ? Si c'est avec IB, tu as bien déclarer un -(IBOutlet)UITableView *tonTableView dans ton controller que tu as bien relié à IB ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
        return 0;
    }
    Ne devrait pas retourner 1 ?

  5. #5
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Oui effectivement ca marche beaucoup mieux!

    J'avais pas vu ça... Pourtant j'en ai fait d'autres des tableView, inattention quand tu nous tiens!

    Donc du coup mon application affiche bien mes données mais quand je parcours la table avec le scroll au bout d'un moment ca crash...

    Il semblerait que cela plante quand j'atteins le bas de la page.

    Le debugger indique cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cell.textLabel.text=[[afficheResultat objectAtIndex:indexPath.row] objectForKey:@"categorie"];
    Cette ligne est dans la méthode tableView:cellForRowAtIndexPath: .

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 76
    Points : 52
    Points
    52
    Par défaut
    Vérifies que "afficheResultat" n'est pas vide ou détruit (release).

  7. #7
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 105
    Points : 62
    Points
    62
    Par défaut
    Après vérification auprès de la base de données en soumettant mes requêtes SQL et sur mon application.

    Il semblerait que l'erreur venait d'ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return [self.afficheResultat count];
    }
    En remplaçant par ceci tout fonctionne convenablement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return [self.afficheResultat count]-1;
    }
    Les résultats étant les mêmes directement sur ma base et à partir de mon application et n'ayant plus aucun crash. Me voilà sauvé!

    Merci à tous!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WM18] Liste de données vide (Base de données SQLite)
    Par mezvin dans le forum Windev Mobile
    Réponses: 4
    Dernier message: 08/04/2014, 18h58
  2. [XL-2007] Laisser une cellule vide si aucune donnée?
    Par bl_pumpkinman dans le forum Excel
    Réponses: 4
    Dernier message: 08/01/2014, 21h54
  3. [FXML] TableView vide
    Par Soiouz dans le forum JavaFX
    Réponses: 1
    Dernier message: 19/12/2013, 15h22
  4. Réponses: 1
    Dernier message: 30/12/2010, 09h31
  5. Réponses: 5
    Dernier message: 13/12/2006, 16h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo