Tôi có một đối tượng trong một NSMutableDictionary lớn, và cần phải tìm ra chìa khóa này có. Vì vậy, tôi muốn tìm kiếm "bảng" đó từ cả hai cột. Không chỉ với các phím, mà còn với các đối tượng (để lấy chìa khóa). Điều đó có thể không?Làm cách nào để lấy khóa cho một đối tượng nhất định từ NSMutableDictionary?
Trả lời
Nhìn vào lớp cha (NSDictionary)
- (NSArray *)allKeysForObject:(id)anObject
Mà sẽ trả về một NSArray của tất cả các phím cho một giá trị gia tăng đối tượng nhất định. NHƯNG nó thực hiện điều này bằng cách gửi một thông báo isEqual đến từng đối tượng của từ điển để tập dữ liệu lớn của bạn có thể không hoạt động tốt nhất.
Có lẽ bạn cần phải giữ một số hình thức cấu trúc thêm cấu trúc chỉ mục (s) để cho phép bạn xác định vị trí các đối tượng trên một số giá trị quan trọng trong họ, liên kết với chìa khóa mà không cần so sánh đối tượng trực tiếp
Hãy xem tại địa chỉ:
- (NSArray *)allKeysForObject:(id)anObject
Để trả lời bạn câu hỏi trong một cách cụ thể hơn, sử dụng sau đây để có được một chìa khóa cho một đối tượng cụ thể:
NSString *knownObject = @"the object";
NSArray *temp = [dict allKeysForObject:knownObject];
NSString *key = [temp objectAtIndex:0];
//"key" is now equal to the key of the object you were looking for
Đó chắc chắn là có thể với phương pháp khối NSDictionary của
- (NSSet *)keysOfEntriesPassingTest:(BOOL (^)(id key, id obj, BOOL *stop))predicate;
Bạn cần trả về các đối tượng đáp ứng một số điều kiện (vị từ).
Sử dụng nó như thế này:
NSSet *keys = [myDictionary keysOfEntriesPassingTest:^BOOL(id key, id obj, BOOL *stop) {
BOOL found = (objectForWhichIWantTheKey == obj);
if (found) *stop = YES;
return found;
}];
Kiểm tra câu trả lời này để biết thêm chi tiết
How do I specify the block object/predicate required by NSDictionary's keysOfEntriesPassingTest?
- 1. PHP: lấy một khóa duy nhất từ đối tượng
- 2. Làm thế nào để lấy đối tượng cho khóa từ NSDictionary?
- 3. lấy đối tượng duy nhất từ NSFetchRequest
- 4. Làm cách nào để lấy khóa từ ContentValues?
- 5. AngularJS: Cách lấy khóa của một đối tượng JSON
- 6. Làm cách nào để lấy đối tượng Window từ đối tượng Tài liệu?
- 7. Cách lấy đối tượng Uri từ Bitmap
- 8. Cách ngắn nhất (một lớp lót) để lấy đối số mặc định từ một hàm v8?
- 9. Truy cập các đối tượng trong NSMutableDictionary theo chỉ mục
- 10. Làm thế nào để lấy chìa khóa từ một TDictionary?
- 11. Làm cách nào để lấy tên khóa chính của đối tượng SQLAlchemy?
- 12. Làm cách nào để LINQ trả về đối tượng có giá trị lớn nhất cho một thuộc tính nhất định?
- 13. Làm cách nào để trích xuất khóa từ đối tượng JSON khóa/giá trị?
- 14. Làm cách nào để lấy lại đối tượng python của tôi từ một QVariant trong PyQt4?
- 15. Làm cách nào để lấy SQL từ một đối tượng truy vấn trong ColdFusion?
- 16. Javascript lấy tên khóa đối tượng
- 17. Cách lấy System.IO.Stream từ đối tượng String
- 18. Cách tốt nhất để lấy đối tượng Kiểu từ một chuỗi trong .NET
- 19. Sử dụng một đối tượng làm khóa Từ điển chung
- 20. Lấy mảng khóa của đối tượng
- 21. Làm thế nào để vượt qua một đối tượng duy nhất [] để một đối tượng params []
- 22. Rails i18n cách lấy tất cả các giá trị cho một khóa nhất định?
- 23. Cách lấy đối tượng tệp từ mkstemp()?
- 24. Lấy "chìa khóa" của một đối tượng trong Actionscript-3
- 25. Làm thế nào để lấy một đối tượng ngẫu nhiên từ một cá thể NSSet?
- 26. Angular JS - angular.forEach - Cách lấy chìa khóa của đối tượng?
- 27. Lấy x số từ trước và sau một từ khóa nhất định?
- 28. Làm cách nào để hợp nhất hai đối tượng?
- 29. Có cách nào để tắt Visual Studio tự động hoàn thành cho từ khóa đối tượng
- 30. Cách lấy thuộc tính đối tượng từ mỗi đối tượng trong một mảng?