Ho 2 NSArrays che sto cercando di collegare insieme in un NSDictionary in modo che ogni providerName ha un ProviderId ad esso associati.Come ottenere i dati NSDictionary in un UITableView
Mi aspettavo che i due array fossero associati l'uno con l'altro usando self.providersDict = [NSDictionary dictionaryWithObjects:providerName forKeys:providerId];
e quindi il providerName da visualizzare come titolo della cella della tabella e l'id come sottotitolo della cella della tabella.
Al momento non riesco a ottenere i dati visualizzati sul uitable oppure uscire il dizionario con:
for (id key in self.providersDict) {
NSLog(@"key: %@, value: %@", key, [self.providersDict objectForKey:key]);
}
dichiarato nel .h:
NSArray *providerName;
NSArray *providerId;
@property (nonatomic, strong) NSDictionary *providersDict;
e nel viewDidLoad :
providerName = [NSArray arrayWithObjects:@"provider1", @"provider2", @"provider3", nil];
providerId = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];
self.providersDict = [NSDictionary dictionaryWithObjects:providerName
forKeys:providerId];
metodi datto:
-(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;
}
grazie per l'aiuto.
Qual è la vostra esigenza? Potresti spiegarmi per favore? –
Pensavo che quanto sopra avrebbe funzionato. Mi aspettavo che i due array fossero associati tra loro usando self.providersDict = [dizionario NSDictionaryWithObjects: providerName forKeys: providerId]; e quindi il providerName da visualizzare come titolo della cella della tabella e id come sottotitolo della cella della tabella. la dichiarazione nslog non è stata eseguita. Non sono sicuro del perché. – hanumanDev
Suppongo che non ci siano chiavi denominate "oggetto" e "provider" nel providerDict, le chiavi sono 1,2,3? e non puoi enumerare il dizionario come stai cercando di fare per i log .... – Ankit