Nhận tất cả các khóa của NSDictionary dưới dạng NSArray


86

Có thể nhận được tất cả các khóa từ một cụ thể NSDictionarynhư một vùng riêng biệt NSArraykhông?

Câu trả lời:


184

Chỉ dùng

NSArray*keys=[dict allKeys];

Nói chung, nếu bạn tự hỏi liệu một lớp cụ thể có một phương thức cụ thể hay không, hãy tra cứu tài liệu riêng của Apple . Trong trường hợp này, hãy xem tham chiếu lớp NSDictionary. Đi qua tất cả các phương pháp. Bạn sẽ khám phá ra nhiều phương pháp hữu ích theo cách đó.


3
Để lấy khóa đầu tiên chỉ có NSString * firstKey = [dict allKeys] [0];
Mazen Kasser

2
@MazenKasser firstObjectlà một giải pháp an toàn hơn - trong trường hợp nếu từ điển không có bất kỳ phím ứng dụng sẽ không sụp đổ:dict.allKeys.firstObject;
Hồi giáo Q.

1
thứ tự của phím được trả về bởi allKeys là undefined ... do đó allKeys.firstObject hoặc allKeys] [0] là nguy hiểm một trong hai cách
Brad Thomas

16

Vâng nó có thể. Sử dụng phương pháp allKeys :

NSDictionary *yourDictionary;
NSArray * yourKeys
yourKeys = [yourDictionary allKeys];

3

Và nếu bạn muốn nhận tất cả các khóa và giá trị , đây là những gì bạn làm:

for (NSString *key in dictionary) {
    id value = dictionary[key];
    NSLog(@"Value: %@ for key: %@", value, key);
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.