Comment obtenir NSDictionary des données dans une UITableView
J'ai 2 NSArrays que je suis en train de lier dans un NSDictionary, de sorte que chaque providerName a un providerId associés.
J'attend les deux tableaux associés à chacun des autres à l'aide de self.providersDict = [NSDictionary dictionaryWithObjects:providerName forKeys:providerId];
et puis le providerName l'affichage de la cellule du tableau le titre et l'id de la cellule du tableau des sous-titres.
Pour le moment, je ne peux pas obtenir les données affichées sur le UITable ou même de déconnecter le dictionnaire à l'aide de:
for (id key in self.providersDict) {
NSLog(@"key: %@, value: %@", key, [self.providersDict objectForKey:key]);
}
déclaré dans le .h:
NSArray *providerName;
NSArray *providerId;
@property (nonatomic, strong) NSDictionary *providersDict;
et dans le viewDidLoad:
providerName = [NSArray arrayWithObjects:@"provider1", @"provider2", @"provider3", nil];
providerId = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
self.providersDict = [NSDictionary dictionaryWithObjects:providerName
forKeys:providerId];
la UITable méthodes:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [[self.providersDict allKeys] count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *unifiedID = @"aCellID";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:unifiedID];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:unifiedID];
}
for (id key in self.providersDict) {
NSLog(@"key: %@, value: %@", key, [self.providersDict objectForKey:key]);
}
NSString *providerNameString = [self.providersDict objectForKey:@"provider"];
NSString *providerIdString = [self.providersDict objectForKey:@"object"];
cell.textLabel.text = providerNameString;
cell.detailTextLabel.text = providerIdString;
return cell;
}
merci pour l'aide.
- Quel est votre besoin ? Pourriez-vous svp m'expliquer ?
- Je pensais que le ci-dessus serait de travailler. J'attend les deux tableaux afin d'être associés les uns avec les autres au moyen de l'auto.providersDict = [NSDictionary dictionaryWithObjects:providerName forKeys:providerId]; puis le providerName l'affichage de la cellule du tableau le titre et l'id de la cellule du tableau des sous-titres. le nslog instruction de ne pas exécuter. Je ne sais pas pourquoi.
- Je suppose que il n'y a pas de clé nommée "objet" et "fournisseur" dans votre providersDict , les touches sont 1,2,3 ? et tu ne peux pas énumérer dictionnaire que vous êtes en train de faire pour les journaux....
- Je pense que vos clés et des valeurs dans le dictionnaire sont interchangeables. Vérifier que.
- Avez-vous mis le délégué pour tableView? Je ne pense pas que votre délégué méthodes sont appelé
Vous devez vous connecter pour publier un commentaire.
Vous avez initialisé auto.providersDict avec les touches 1, 2, 3. Ainsi, vous devriez Essayer de chercher
providerNameString
à l'aide de ces touches et pas@"provider"
même pourproviderIdString
.Essayer
Et n'oubliez pas d'appeler
[tableView reloadData];
une fois votreself.providersDict
est initialisé.Comme une suggestion pourquoi ne pas vous créer un Modèle de Classe pour
Provider
avec l'id, le nom et d'autres informations. Vous pouvez ajouter chaque fournisseur dans un tableau et rendre votre vie beaucoup plus facile.Pour votre but , vous n'avez pas besoin de tout
NSDictionary
, il suffit d'utiliser deuxNSArrays
pour remplir les données dansUITableView