Để hiển thị khóa/giá trị từ một NSMutableDictionary tuần tự (trong bảng xem trước), tôi cần truy cập chúng theo chỉ mục. Nếu truy cập bằng chỉ mục có thể cung cấp khóa ở chỉ mục đó, tôi có thể nhận được giá trị. Có cách nào để làm điều đó hay một kỹ thuật khác không?Truy cập các đối tượng trong NSMutableDictionary theo chỉ mục
Trả lời
Bạn có thể lấy NSArray chứa các khóa của đối tượng bằng cách sử dụng phương thức allKeys. Sau đó, bạn có thể xem xét điều đó theo chỉ mục. Lưu ý rằng thứ tự các khóa xuất hiện trong mảng không xác định. Ví dụ:
NSMutableDictionary *dict;
/* Create the dictionary. */
NSArray *keys = [dict allKeys];
id aKey = [keys objectAtIndex:0];
id anObject = [dict objectForKey:aKey];
EDIT: Trên thực tế, nếu tôi hiểu những gì bạn đang cố gắng làm những gì bạn muốn có thể dễ dàng thực hiện bằng liệt kê nhanh, ví dụ:
NSMutableDictionary *dict;
/* Put stuff in dictionary. */
for (id key in dict) {
id anObject = [dict objectForKey:key];
/* Do something with anObject. */
}
EDIT: Fixed lỗi đánh máy đã chỉ ra bởi Marco.
"allkeys" là "allKeys" – Mark
Trong 'cellForRowAtIndexPath' trong một khung nhìn có thể là: 'NSArray * keys = [colors allKeys]; NSString * key = [đối tượng khóaAtIndex: indexPath.row]; cell = [tv dequeueReusableCellWithIdentifier: @ "CellColour" forIndexPath: indexPath]; cell.textLabel.text = [colors objectForKey: key]; cell.backgroundColor = [self colorFromHexString: key]; ' –
bạn có thể lấy một dãy tất cả các phím bằng phương pháp allKeys
của từ điển; và sau đó bạn có thể truy cập mảng theo chỉ mục. tuy nhiên, bản thân từ điển không có thứ tự vốn có, do đó thứ tự của các phím bạn nhận được trước và sau khi thay đổi từ điển có thể hoàn toàn khác nhau
- 1. Truy cập các thuộc tính đối tượng không thuộc số bằng chỉ mục?
- 2. Truy cập địa chỉ bộ nhớ đối tượng trong ruby ..?
- 3. Cách truy cập chỉ mục trong đối tượng IEnumerable trong C#?
- 4. Cập nhật chỉ mục Solr theo truy vấn
- 5. Nhận đối tượng từ observableArray theo chỉ mục
- 6. Truy cập các phần tử theo chỉ mục trong một Mẫu FTL
- 7. C# Truy cập các đối tượng quản lý trong ManagementObjectCollection
- 8. Tìm chỉ mục trong mảng đối tượng
- 9. Truy cập các đối tượng từ một quy trình khác
- 10. Cấu trúc có thể truy cập theo tên thuộc tính hoặc tùy chọn chỉ mục
- 11. Truy cập jQuery đối tượng JSON
- 12. Truy cập các trường từ đối tượng proxy
- 13. Truy cập đối tượng GridViewColumnHeader từ GridViewColumn
- 14. "đột biến phương pháp gửi đến đối tượng bất biến" mặc dù đối tượng là NSMutableDictionary
- 15. Đối tượng truy cập dữ liệu PHP
- 16. Truy cập các đối tượng lồng nhau Javascript an toàn
- 17. javascript đối tượng truy cập hiệu suất
- 18. Truy cập chỉ mục từ cây biểu thức
- 19. Truy cập đối tượng sự kiện toàn cục trong Firefox
- 20. Truy cập các thuộc tính của một mảng đối tượng
- 21. Truy cập các trường đối tượng scala từ java
- 22. truy cập tệp/thư mục theo dõi trong C#
- 23. Tìm kiếm văn bản trong các thuộc tính Truy cập các đối tượng
- 24. Truy nhập đệ quy thông qua các thuộc tính cũng như truy cập chỉ mục?
- 25. Truy cập yếu tố dict_keys bởi chỉ mục trong Python3
- 26. elasticsearch chèn các đối tượng vào chỉ mục
- 27. Truy cập trường chặn đối tượng java trong Rhino
- 28. Cách lặp qua đối tượng trong javascript với chỉ mục không theo thứ tự
- 29. Theo dõi số lượng "lượt xem trang" hoặc "lần truy cập" của một đối tượng?
- 30. thuộc tính đối tượng truy cập trong groovy sử dụng []
Khi thực hiện như sau: NSMutableDictionary * tmpDict = [[NSMutableDictionary alloc] init]; [tmpDict setObject: @ "CN-GSM" forKey: @ "Nhà cung cấp:"]; [tmpDict setObject: @ "10010" forKey: @ "Số:"]; [tmpDict setObject: @ "Có" forKey: @ "Miễn phí:"]; NSLog (@ "% @", [tmpdict allKeys]); [tmpDict release]; Tại sao đầu ra không được sắp xếp theo giá trị tôi đã thêm vào tmpDict? – ZYiOS