2013-03-30 2 views
2

-insertObject:atIndex:을 사용하여 DecryptedItem이라는 사용자 정의 클래스의 인스턴스를 NSMutableArray에 추가했습니다. DecryptedItem-hash-isEqual: 메서드를 구현하지만 배열에 개체를 추가 할 때 관련이 없다는 것을 알고 있습니다.NSMutableArray에 nil 포인터가 포함되어 있습니다.

인덱스 0에 객체를 삽입 한 후 인덱스 0에 또 하나를 추가하면 다음과 같은 매우 이상한 동작이 발생합니다. 배열은 디버그 창에 3 개의 요소 배열로 표시되고 -description 배열에 3 개의 다른 객체가 있음을 보여줍니다. 그러나 디버거의 배열을 보면 한 객체가 nil이라는 것을 알 수 있습니다! 나는 -indexOfObject:inSortedRange:options:usingComparator:을 사용하여 특정 객체를 검색 할 때 이것을 알아 차렸는데, NSNotFound을 반환했습니다.

Strange NSMutableArray behavior

+0

NSMutableArray에 데이터를 저장하는 방법은 무엇입니까? 코드? –

+0

nil을 삽입하면 개체가 nil 인 경우 NSNull 개체를 반환하는 메서드에서이 데이터를 반입하지 ​​않는 한 삽입 중에 응용 프로그램이 중단됩니다. 예 : json 문자열에서 파싱 된 객체입니다. – lukya

+0

코드를 보여주십시오. –

답변

0

배열이 제대로 분류되지 않았으며, 따라서 -indexOfObject:inSortedRange:options:usingComparator: 제대로 작동하지 않았다고 밝혀졌습니다. 모든 것이 이제는 괜찮아 보입니다. 실제로 디버거가 기발한 것 같았습니다.

관련 문제