2012-07-02 3 views
1

div의 키 객체와 문자열을 비교해야합니다. 나는 for 루프에서 키 개체에 액세스 :목표 C - ID를 문자열 화하는 방법

for (id key in _photosDic) { 
    ... 
} 

루프에서, 나는 문자열 키를 비교합니다. 키를 문자열로 변환해야합니까?

+0

귀하의 질문이 명확하지 않다. 당신이 참조하는이 div는 무엇입니까? –

+1

@ 리차드, pgb의 답변에 대한 여러분의 의견 : 한 프로그램의 과정에서 같은 오브젝트에'description '을 두 번 보내면 동일한 결과를 얻을 수 있습니다. 이 두 가지를 비교하면 문제가되지 않습니다. 이 문제는 리턴 값이 프레임 워크 버전간에 변경되거나 (잠재적으로) 변경 될 수 있으므로 특정 형식이나 값을 가져야한다고 예상하여 발생합니다. 즉, 아직이 질문에 대한 대답이 아닙니다. –

+0

@ JoshCaswell 동일한 결과가 보장되는 것은 아닙니다. 나 자신은'-description'에서 문자열의 주소를 포함하는 NSString 서브 클래스를 디버깅 목적으로 작성했습니다. –

답변

4

id 유형이 무엇이든 될 수 있으므로 첫 번째 단계는 실제로 NSString인지 확인하는 것입니다.

그것을 위해 당신은이를 사용할 수 있습니다

if ([idObject isKindOfClass:[NSString class]]) 
{ 
    //Now do a simple casting 
    NSString *myString = (NSString *)idObject; 

    //Now compare the strings 
    NSComparisonResult result = [myOtherString compare:myString]; 
} 
+0

행동에 그것은 바로 aweser이며, 나는 그것을 표시합니다. 그러나 나는 실수하고있다. 축소판 그림보기에서 전체 화면보기로 사진의 배열과 전달됩니다. 그래서 선택한 사진과 배열을 전달합니다. 따라서 FullscreenView가로드되면 모든 사진을로드하고 뷰의 오프셋을 선택한 뷰로 변경할 수 있습니다. 문제는 내가 사전에 문자열을 저장할 수 있기 때문에 나는 photo.description을 보내고 있다는 것인가, 아니면 틀린가? [photosViewDic setObject : [photosDic objectForKey : @ "URI"] forKey : 사진]; 내가 그걸 넣으면 내가 잘못된다. photo.description 잘 작동합니다. – 88fsantos