2012-11-13 3 views
0

설명하기 혼란 스러워요 : NSMutableDictionary를 통해 for 루프를 반복하고 "키"값을보고이를 "키"와 비교하려고합니다. "두번째 NSMutableDictionary의 값. 일치하는 경우 (문자열 비교) 두 사전의 "개체"를 별도의 배열에 추가해야합니다.For 루프에서 NSDictionary를 사용할 때 구체적으로 참조하십시오

사과 = aelpp 토마토 = amoott 스택 = ackst

:

은 사전 A와 B 둘과 같이, 알파벳 순서로 단어의 목록 (객체)와 그 단어 (키)를 포함, 명확히하기 위해

그래서 "aelpp"와 "amoott"를 비교해야하지만 "apple"과 "tomato"를 저장해야합니다.

기본 질문은 for 루프 (for (NSString *currentWord in dictionaryA))를 사용할 때 dictionaryA의 객체 또는 키를 어떻게 구체적으로 나타내야합니까? 열쇠를 비교하기 위해 필요하지만, 일치하는 경우 객체를 저장해야합니다.

아무것도 더 설명이 필요한 경우 :

+0

을 (당신은 알파벳 순서로 언급 - 쌍을 '[myDict allKeys] '를 호출하면 키의 순서는 정의되지 않습니다. –

+0

@Aaron : lukech의 이전 질문 중 하나에서 나는 그가 다음을 의미한다고 생각합니다 : 사전 키는 단어이고, 해당 값은 사전 순으로 단어입니다 (예 : dict [ "apple"] = "aelpp". –

+0

@MartinR 아, 네가 맞다고 생각해. 나는 그것들이 무작위 문자라고 생각했다 : –

답변

0

이 "기본적인 질문에"대답하기 위해 문의 바랍니다 :

for (NSString *keyA in dictionaryA) { 
    NSString *valueA = [dictionaryA objectForKey:keyA]; 
    // Now keyA : valueA is one key-value pair of dictionaryA ... 
} 

(모든 가정 : NSDictionary의 빠른 열거 사전을 을 열거 키와 값은 문자열입니다). 당신이 한 번에 키와 값 사이에 동시에 반복하려면

+0

NSDictionary 인스턴스 메소드'allKeysForObject :'는 사전에 주어진 객체의 모든 발생에 해당하는 키를 포함하는 새로운 배열을 리턴한다. 그런 다음이 배열의 객체를 다른 배열에 추가 할 수 있습니다. –

0

이 사용, NSDictionary와 어떤 "순서"가 발생하지 않는 것을 기억 보조 노트에

[dictionaryA enumerateKeysAndObjectsUsingBlock:^(NSString * keyA, 
                id valueA, 
                BOOL *stop) { 
    // You have at the same time access to keyA and valueA 
}]; 
관련 문제