2011-03-27 2 views
0

NSFetchedResultsController을 사용하고있는 가져 오기 요청에서 임의의 객체를 가져오고 싶습니다. 이것은 내가 가지고있는 것입니다 :NSFetchedResultsController를 사용하여 임의의 객체 가져 오기

int randIndex = arc4random() % [[_fetchedResultsController fetchedObjects] count]; 
randomObject = [_fetchedResultsController objectAtIndex:randIndex]; 

그러나 나는 이것이 제대로 작동하고 있다고 생각하지 않습니다. 충돌을 일으킬 수 있습니다. 누군가 제게 조언 해 주시겠습니까?

+0

어떤 종류의 충돌이 발생합니까? randIndex의 가치는 무엇입니까? count의 가치는 무엇입니까? – amattn

+0

난 그냥 카운트를 사용하여 NSFetchedResultsController 개체의 수를 얻으려고. 그 숫자를 가져 와서 arc4random()을 사용하고 무작위 키를 얻어 컨트롤러에서 임의의 객체를 선택하는 데 사용합니다. 물론이 작업을 수행하는 더 좋은 방법이 있습니까? –

답변

3

이 시도 : NSFetchedResultsController이 -objectAtIndex에 응답하지 않기 때문에

int randIndex = arc4random() % [[_fetchedResultsController fetchedObjects] count]; 
randomObject = [[_fetchedResultsController fetchedObjects] objectAtIndex:randIndex]; 

충돌이 :.

+0

멋진 잡기. 나는이 질문을 더 일찍 보았고 나는 실수를 발견하지 못했다. –

+0

찾아 주셔서 감사합니다! 또한 경고없이 이상한 충돌을 일으키는 것을 깨달았습니다. % i를 사용했을 때 randIndex를 % @로 인쇄하려고 시도한 NSLog 테스트 라인이있었습니다. –

관련 문제