2009-10-08 5 views
0

Ceci fait partie de mon code. Mon application se bloque lorsque j'essaie de charger la vue, y compris la vue uitable. Je pense qu'il y a un problème avec la table que j'essaye d'employer mais ne peux pas le trouver. aide s'il vous plaîtiphone sdk - UITableView - impossible d'affecter une table à la vue de la table

gameTimingTable=[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 

déclaré dans .h comme NSArray *gameTimingTable; c'est le code que je utilise pour attribuer la table à la uitableview

- (void)viewDidLoad { 

gameTimingTable=[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 



} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    // There is only one section. 
    return 1; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // Return the number of time zone names. 
    return [gameTimingTable count]; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *MyIdentifier = @"MyIdentifier"; 

    // Try to retrieve from the table view a now-unused cell with the given identifier. 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

    // If no cell is available, create a new one using the given identifier. 
    if (cell == nil) { 
     // Use the default cell style. 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease]; 
    } 

    // Set up the cell. 
    NSString *cadence = [gameTimingTable objectAtIndex:indexPath.row]; 
    cell.textLabel.text = cadence; 

    return cell; 
} 

/* 
To conform to Human Interface Guildelines, since selecting a row would have no effect (such as navigation), make sure that rows cannot be selected. 
*/ 
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    return nil; 
} 

merci beaucoup

+0

des idées ?? ....................... thanx – kossibox

Répondre

0

Le problème ici pourrait être une (ou les deux) de deux choses:

1 ... Vous revenez à zéro de la méthode willSelectRowAtIndexPath ré. Si vous n'êtes pas un utilisateur capable de toucher les cellules, ne surchargez pas cette méthode, c'est-à-dire ne la touchez pas du tout. Parallèlement à cela, dans la méthode cellForRowAtIndexPath vous pouvez faire:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

pour vous assurer que la cellule ne souligne même pas lorsqu'un utilisateur tape il.

2 ... La façon dont vous avez initialisé le tableau gameTimingTable signifie qu'il est auto-libéré après que vous l'ayez créé afin qu'il ne soit pas accessible ailleurs dans le code. INITIALISER en utilisant l'une des méthodes suivantes au lieu:

gameTimingTable=[[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil] retain]; 

// OR ... 

gameTimingTable=[[NSArray alloc] initWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 

... mais rappelez-vous de libérer le tableau dans la méthode dealloc:

- (void)dealloc { 
[gameTimingTable release]; 
[super dealloc]; 

}

Questions connexes