반응형
NSMutableDictionary를 통해 반복
키에 관계없이 NSMutableDictionary의 모든 개체를 어떻게 반복합니까?
표준 방법은 다음과 같습니다.
for(id key in myDict) {
id value = [myDict objectForKey:key];
[value doStuff];
}
당신이 사용할 수있는
[myDict enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
대상 OS가 블록을 지원하는 경우.
당신은 당신의 가치 [dict allValues]
를 얻는 데 사용할 수 있습니다 NSArray
. 통화 사이의 순서를 보장하지 않습니다.
- 단순 루프의 경우 빠른 열거가 블록 기반 루프보다 약간 빠릅니다.
- 빠른 열거보다 블록 기반 열거를 사용하여 동시 또는 역 열거를 수행하는 것이 더 쉽습니다. NSDictionary로 루핑 할 때 블록 기반 열거자를 사용하여 한 번의 히트에서 키와 값을 얻을 수있는 반면, 빠른 열거에서는 키를 사용하여 검색해야합니다. 별도 메시지 보내기의 값
빠른 열거로
for(id key in myDictionary) {
id value = [myDictionary objectForKey:key];
// do something with key and obj
}
블록에서 :
[myDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
// do something with key and obj
}];
변수에 값을 할당 할 필요가 없습니다. 을 사용하여 직접 액세스 할 수 있습니다 myDict[key]
.
for(id key in myDict) {
NSLog(@"Key:%@ Value:%@", key, myDict[key]);
}
또 다른 방법은 Dicts 열거자를 사용하는 것입니다. 다음은 Apple의 샘플 코드입니다.
NSEnumerator *enumerator = [myDictionary objectEnumerator];
id value;
while ((value = [enumerator nextObject])) {
/* code that acts on the dictionary’s values */
}
참고 URL : https://stackoverflow.com/questions/3914369/looping-through-an-nsmutabledictionary
반응형
'developer tip' 카테고리의 다른 글
비트 연산 및 사용 (0) | 2020.08.31 |
---|---|
jQuery 추가 페이드 인 (0) | 2020.08.31 |
지도보기가 화면의 일부일 때 iOS 시뮬레이터에서 핀치하는 방법은 무엇입니까? (0) | 2020.08.31 |
초기화 블록이란 무엇입니까? (0) | 2020.08.31 |
이미지 높이와 너비를 정수 값으로 얻습니까? (0) | 2020.08.31 |