2011-05-10 3 views
1

루프 내에서 설정 될 수있는 NSDictionary가 있습니다. 루프가 끝날 때 사전이 정의되었는지 확인하고 싶습니다. 다음은 그 예이다 : NSDictionary가 정의 되었습니까?

NSDictionary *myDict; 

for (int i=0; i < 100; i++){ 
    if (thisCondition){ 
     myDict = [NSDictionary dictionaryWithObjectsAndKeys:etc, nil]; 
    } 
} 

if (myDict) { 
    [self doSomething]; 
} 

불행하게도, myDict의 시험은 myDict이 alloc'ed되었는지의 여부를, 모든 시간을 전달합니다. [myDict count]처럼 myDict에 어떤 메서드를 전달하려고하면 할당되지 않았기 때문에 exc_bad_access를 제공합니다. 그래서 그것은 어떤 사람의 땅이 아닙니다.

이 방법이 있습니까? 내가 NSMutableDictionary로 전환하고, 정의하고, 반복문에 추가하고, 개수를 테스트 할 수 있다는 것을 알았지 만 그것은 내 취향이 아닙니다. 먼저

답변

3

, 당신이 전무로 포인터를 초기화합니다

NSDictionary *myDict = nil; 

그렇지 않으면, 유효한 포인터에 대한 검사가 작동하지 않을 수 있습니다.

+0

s/may/will /하지만 +1 –

+0

우수. 그건 잘된거야! –

+1

@Jakob Borg 왜 안 될지도 모릅니다 *? *? 2^64 건 중 1 건 **에서 ** 작동합니다. –

관련 문제