2010-05-06 5 views
2

, 그것을 확인하고 할당 할 때 비어 있다면 전무에 동일하게 설정하거나 사용하는 경우 오히려 검사를 수행하는 것이 좋습니다?있는 NSArray의 보호있는 NSArray가 비어있는 가능성이있는 경우

NSArray *myArray; 

if ([anotherArray count] > 0)  <-- Check when assigned 
    myArray = [anotherArray copy]; 
else 
    myArray = nil; 

something = [myArray objectAtIndex:x]; 

또는 더 나은

NSArray *myArray; 

myArray = [anotherArray copy]; 

if ([myArray count] > 0)   <-- Check when used 
    something = [myArray objectAtIndex:x]; 

?

+0

또한 다른 변수의 경우 NSArray가 가장 먼저 생각났습니다. –

+0

비어있는 경우 왜 이것을 nil로 설정합니까? –

답변

3

비어 있습니다.

이 다른 문제가 발생할 수 있습니다, nil로 설정하지 마십시오. 예를 들어 배열을 NSArray, NSDictionary 또는 다른 컬렉션 클래스에 추가하려고하면 런타임에서 예외가 발생합니다.

+0

나는 닐에 대한 설정이 안전한 것이라고 생각 했습니까?!? 네가 말한 것을 기억할 것이다. 고마워. –

0

나는 이것이 무엇보다 프로그래밍 스타일의 문제라고 생각합니다. 나는 당신이 배열에 전달한다 불필요하게 메모리를 할당에 대한 걱정 같은데요

당신은 단지 배열이 필요한 때 비어 있는지 확인해야합니다

+0

실수로 빈 배열에 액세스하지 않으려 고 함과 동시에 공간을 차지하는 쓸모없는 변수를 원하지 않습니다. –

관련 문제