2012-09-02 4 views
3

빠른 열거 형을 사용하여 반복되는 컬렉션을 수정하지 않아도되지만 어느 정도인지는 확실하지 않습니다. 아래 코드는 어떤 문제도 일으키지 않았지만 운이 좋았는지 확실하지 않습니다. 누구든지 명확한 대답을 가지고 있습니까?빠른 열거 형을 사용하여 NSManagedObject를 삭제해도 안전합니까?

for(NSManagedObject *myObject in myArray) { 
    [myObject.managedObjectContext deleteObject:myObject]; 
} 

그래서 정말 배열을 수정 아니지만, 난 그냥 간접적으로 배열을 수정할 수있는 컨텍스트에서 개체를 삭제하고,하지만 난 그것에 대한 확실하지 않다 ..

답변

3

당신을 배열 자체를 변형시키지 않는 한 배열의 객체로 원하는 모든 작업을 수행 할 수 있습니다.

그 코드는 완벽하게 수용됩니다. 삭제할 개체가 많이있는 경우

주, 그러나, 당신은 당신에게 무엇을 (등, 반드시 당신의 MOC 깨끗하게 유지하고, 오토 릴리즈 풀을 사용하여 관계를 프리 페치 등)뿐만 아니라

+0

을 다른 것들을 고려해야한다 "MOC가 깨끗하게 유지되도록"하는 것의 의미는 무엇입니까? – Snowman

+0

매우 큰 삭제 작업을 수행 할 때 개체를 가져온 다음 삭제하여 데이터베이스로의 이동을 줄이려합니다. 그것이 많은 경우 작은 배치로 처리하고 MOC가 삭제 된 객체를 해제했는지 확인 (재설정 또는 새로 고침을 통해 NO로 설정)하십시오. 저장된 후에는 참조 된 모든 객체가 삭제되어 삭제 된 객체를 참조하지 않도록해야합니다. –

+0

그러나 컨텍스트에서 항목을 삭제하지 않으면 어레이에서 누락되어 다시 수정됩니다. – Snowman

관련 문제