Comptage allKeys de NSDictionary retourne EXC_BAD_ACCESS
Je suis en train d'envoyer un NSDictionary à un TableViewController, les données à l'origine vient d'une .fichier plist. Je veux simplement envoyer un objet qui existe en outre au bas de la hiérarchie à nouveau TableViewController. Mais des problèmes se produisent lorsque j'essaie de compter le nombre d'éléments dans numberOfSectionsInTableView.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//Gets the dictionary for the currently selected row
NSDictionary *dict = [[data objectForKey:[[data allKeys] objectAtIndex:indexPath.section]] objectAtIndex:indexPath.row];
//Checks if the key "Room" exists
if([dict objectForKey:@"Room"]) {
SalesFairSessionTableViewController *sessionViewController = [[SalesFairSessionTableViewController alloc] init];
//Sets the data in the subview Controller
[sessionViewController setData:[dict objectForKey:@"Room"]];
//And the title
[sessionViewController setTitle:[dict objectForKey:@"Title"]];
//Problem is here... returns EXC_BAD_ACCESS
NSLog(@"%@", [[[dict objectForKey:@"Room"] allKeys] count]);
[self.navigationController pushViewController:sessionViewController animated:YES];
[sessionViewController release];
}
}
Si je viens d'utiliser allKeys comme ceci:
NSLog([[dict objectForKey:@"Room"] allKeys]);
Elle renvoie ("Élément 1", "Élément 2") dans la console.
Mais quand j'ajoute le ”comte” méthode comme ceci:
NSLog(@"%@", [[[dict objectForKey:@"Room"] allKeys] count]);
Je viens de sortir: Programme du signal reçu: “EXC_BAD_ACCESS”.
Ce qui me manque ici?
OriginalL'auteur kroofy | 2010-12-27
Vous devez vous connecter pour publier un commentaire.
comte donne un
int
, mais vous imprimez avec%@
, attend un pointeur vers un objet. Utilisation%d
à la place.OriginalL'auteur Eiko
Que votre code se trouve actuellement, vous racontez l'
NSLog
chaîne de s'attendre à un objet.count
retourne unNSInteger
, d'où l'erreur. Pour corriger, modifier cette ligne::
OriginalL'auteur Sam Ritchie