2012-08-23 1 views
2

주어진 색인에 다른 내용을 포함하는 NSMutableArray을 만들려고합니다.배열이 지정된 인덱스에서 nil인지 테스트하십시오.

나는이 코드는 작동하지 않습니다하지만 당신은 그것에서 아이디어를 얻을 수있을 것입니다 일반 init

와 달리, 이전의 배열 인덱스에서 무엇이든이있는 경우 initWithArray:로 새로운 배열을 초기화하고 있습니다 :

NSMutableArray *typeCourseCutId; 
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){ 
    typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]]; 
} else { 
    typeCourseCutId = [[NSMutableArray alloc]init]; 
} 

이러한 종류의 테스트에는 해결책이 있습니까?

+1

어떤 종류의 ? –

+3

'objectAtIndex :'는 _any_ index에 대해'nil'을 반환하지 않습니다. 코코아 배열은'nil'을 포함 할 수 없으며, 배열의 경계 밖의 인덱스에 접근하려고 시도하면 예외가 발생합니다. 'nil'을 배열에 넣으려고하면 예외가 발생합니다. –

답변

3

배열 수를 확인할 수 있습니다. 카운트가 가져 오는 인덱스보다 크면 오브젝트가 해당 인덱스에 있음을 의미합니다.

또한 self.typeCourseCutNSArray 개체의 배열인지 확인하십시오. 그렇지 않으면 initWithArray:이 충돌합니다. Self.typeCourseCut에서 데이터 저장소의

는 또한 인덱스 1에서 객체를하지 않고, 가장 중요한 [yourArray addObject:[NSNull null]]; 으로 배열에 빈 개체를 추가 할 수 있습니다, 당신은 인덱스에 개체를 추가 할 수 없습니다 2.

+0

이것은 정답입니다. 색인이 올바른 범위에 있으면 거기에 객체가 있습니다. 'initWithArray :'에 대한 주석 또한 중요합니다. –

+0

thnks buddy .. :) –

+0

[... count] 옵션에 대해 고맙지 만,하지 않았습니다 ... 나는 애플의 NSNull 문서에 대한 업데이트를 얻으려고 노력할 것입니다. – Tim

6

컬렉션으로 널 (NULL) 표시기를 사용하기 위해 특별히 만든 NSNull라는 특별한 클래스가있다 :

NSNull 클래스는 콜렉션 객체에 null 값을 (어떤을 허용하지 않습니다 나타내는 데 사용되는 싱글 톤 객체를 정의는 nil 값).

if([self.typeCourseCut objectAtIndex:typeCourseIndex] != [NSNull null]) ... 
2

배열은 인덱스에서 전무이어야한다. 배열이 작성되는 방식은 무제한 객체에 도달하는 순간입니다. 그것은 배열의 끝으로 간주됩니다.

nil 개체를 추가하거나 기존 개체를 nil로 업데이트 할 수 없습니다.

"Null"스타일 개체로 설정해야한다면 그 자리에 NSNull을 사용할 수 있습니다. 이것은 대부분의 JSON 파서가 표시하려는 객체에 대해 수행하지만 null이됩니다.

관련 문제