Bạn nói rằng bạn đã mất thứ tự các khóa, vì vậy tôi cho rằng bạn lấy các khóa đó từ một số NSArray
. Đúng? Và trong đó NSArray
bạn có các phím được đặt hàng theo ý muốn. Và tôi cũng thấy rằng các đối tượng của NSDictionary
là Arrays
, phải không? Vâng.Vì vậy, trong số Ordered Array
bạn có nhiều mảng hơn.
data
là tên của từ điển NSDictionary.
Vì vậy, tất cả những gì bạn phải làm là mang lại NSArray
(thứ được đặt hàng như bạn luôn muốn) vào tệp .m này và sau đó sử dụng một số mã tuyệt vời trong phương thức cellForRowAtIndexPath
của bạn. Bạn có thể làm điều đó bằng cách thực hiện như sau:
@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;
}
Và đây là tất cả những gì bạn phải làm để giữ thứ tự bạn muốn bằng NSDictionary và NSArray.
Để hình dung nó tốt hơn, trong trường hợp đó mảng lệnh của bạn chỉ chứa chuỗi nó sẽ là như thế này:
- (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;
}
Hy vọng nó giúp.
Nguồn
2014-03-15 00:44:49
Những khóa đó không bao giờ được đặt hàng. Từ điển không có thứ tự. –
có thể trùng lặp của [Làm thế nào tôi có thể nhận được thứ tự Ban đầu của NSDictionary/NSMutableDictionary?] (Http://stackoverflow.com/questions/3386921/how-can-i-get-original-order-of-nsdictionary-nsmutabledictionary) – Amar