Từ điển là băm được ánh xạ để truy xuất nhanh hơn. Bạn không được phép sửa thứ tự của nó.
Nếu bạn muốn lưu trữ theo thứ tự bạn nên sử dụng mảng.
Hoặc bạn phải sử dụng một số cách phức tạp, tiếp tục chắp thêm int orderNumber
(Bạn cần phải tăng nó sau mỗi setObject/setValue) bằng khóa. để lưu trữ và truy xuất như:
NSDictionary *dict=[NSDictionary new];
NSString *key=....;
[dict setValue:@"some value" forKey:[NSString stringWithFormat:@"%d-%@",orderNumber, key]];
Hoặc bạn có thể sử dụng một mảng có một từ điển cho mỗi chỉ số.
Một cách khác là sử dụng một lớp tùy chỉnh như
@interface ....
@property(...) NSInteger index;
@property(...) NSString *key;
@property(...) id object;
// and methods to retrieve based on key, based on index etc
@end
EDIT 2:
Tìm thấy rất giống với những gì tôi đã đăng một năm trước, xem OrderedDictionary này.
Nguồn
2013-01-24 11:48:28
Tôi nhận ra mình có thể sử dụng mảng, nhưng tôi cần lưu trữ cả Khóa và Giá trị, một thứ mà NSArray không cho phép. –
Có, tôi biết, Bây giờ tôi đã cập nhật câu trả lời của mình .. –