2014-07-16 4 views
2

나는 다음과 같은 기능NSIndexPath indexPathForItem이 잘못된 경로를 반환하는 이유는 무엇입니까?

[NSIndexPath indexPathForItem:item inSection:0] 

가끔 다음과 같은 설명이있는 NSIndexPath 객체를 반환하는 문제에 봉착 : 그건 잘못된 경로입니다 분명

<NSIndexPath: 0x7a32c0> {length = 2, path = 0 - 2147483648} 

,하지만 난 아무것도 찾을 수 없습니다 왜 함수가 그런 경로를 반환하는지 말한 소스. 작업을 취소하고 잠시 후에 동일한 코드 행을 실행하면 올바른 값을 반환합니다.

반환되는 잘못된 값은 겉으로보기에 무작위이므로 그 값을 반환하는 원인을 찾으려고합니다. 유효한 인덱스 경로가 없으면 문서에 nil이 반환됩니다.

+1

2147483648은 정확히 2^31입니다. 'item'이란 무엇입니까? – jtbandes

+0

그 점도 눈치 챘지만 왜 그 값을 돌려 줄지 전혀 모르겠습니다. item은 내 UICollectionView에있는 항목의 인덱스입니다. 함수가 잘못된 값을 반환하는 경우에도 인덱스가 유효한 인덱스인지 확인했습니다. – BreadicalMD

+0

어떻게 확인 했습니까? 어떤 문서를 읽었는지 모르겠지만'- [NSIndexPath indexPathForItem : inSection :]'는 결코 nil을 반환하지 않습니다. 단지 인덱스 경로 객체에 두 개의 숫자를 넣으면됩니다. – jtbandes

답변

3

경로가 잘못되었습니다. 제공된 item 색인입니다.

나는 당신에게 힌트를 줄 것이다. 이 코드를 실행 해보십시오 :

NSLog(@"%@", [NSIndexPath indexPathForItem:NSNotFound inSection:0]); 

문제가 계속 문제를 찾을 수있는 경우는, item 계산 방법을 살펴 있습니다. 다음과 같은 코드가있을 수 있습니다.

... 여기서 NSNotFound 값은 누락 된 개체를 나타냅니다.

+0

알았어, 더 자세히 살펴볼 테니, 팁 주셔서 감사합니다. 나는이 답을 받아 들일 것이다. – BreadicalMD

관련 문제