Sie sagten, dass Sie die Reihenfolge der Schlüssel verloren haben, also nehme ich an, dass Sie diese Schlüssel von einem NSArray
ziehen. Recht? Und in diesem NSArray
haben Sie die Schlüssel, wie Sie möchten. Und ich sehe auch, dass die Objekte der NSDictionary
Arrays
sind, richtig? Ja.Also in Ihrem Ordered Array
haben Sie mehr Arrays.
data
ist der Name des NSDictionary.
Also, alles, was Sie tun müssen, ist, dass NSArray
(die, die bestellt wird, wie Sie schon immer wollten) in diese .m-Datei und danach einige erstaunliche Code in Ihrer cellForRowAtIndexPath
Methode. Sie können es tun, indem Sie folgendermaßen vorgehen:
@interface yourViewController()
{
NSArray *yourArrayOrdered;
}
@end
@implementation yourViewController
- (void)viewDidLoad
{
[super viewDidLoad];
yourArrayOrdered = [[NSArray alloc] initWith...:... ];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *key = yourArrayOrdered[indexPath.row];
NSArray *list = [self.data objectForKey:yourArrayOrdered[indexPath.row]];
//your code continues here...
/*id data = list[indexPath.row]; //don't think you need this line
PSSearchCell *cell = [PSSearchCell newCellOrReuse:tableView];
cell.model = data; */
return cell;
}
Und das ist alles, was Sie tun müssen, um die Bestellung erhalten Sie ein NSDictionary und NSArray behalten möchten verwenden.
Um es besser sichtbar zu machen, in dem Fall, dass Ihr geordnetes Array nur Strings enthält es so sein würde:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *key = yourArrayOrdered[indexPath.row];
NSString *myString = [self.data objectForKey:yourArrayOrdered[indexPath.row]];
cell.textLabel.text = [NSString stringWithFormat:@"THIS IS THE OBJECT %@", myString];
cell.detailTextLabel.text = [NSString stringWithFormat:@"AND THIS IS THE KEY %@", key];
return cell;
}
Hoffe, es hilft.
Diese Schlüssel wurden nie bestellt. Wörterbücher haben keine Reihenfolge. –
mögliche Duplikate von [Wie bekomme ich Original Bestellung von NSDictionary/NSMutableDictionary?] (Http://stackoverflow.com/questions/3386921/how-can-i-get-original-order-of-nsdictionary-nsmutabledictionary) – Amar