내 NSManagedObjectContext의 모든 객체를 반복하고 수동으로 업데이트하려고합니다. 그런 다음 모든 관리 대상 객체를 업데이트해야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?NSManagedObjectContext 객체를 반복할까요?
답변
이론적으로 관리 대상 개체 모델의 모든 엔터티 설명을 반복하고 해당 개체에 대한 조건부 인출 요청을 작성한 다음 반환 된 모든 개체를 반복하고 업데이트 할 수 있습니다. 예 : 당신이 NSManagedObjects 전송할 수 있습니다
// Given some NSManagedObjectContext *context
NSManagedObjectModel *model = [[context persistentStoreCoordinator]
managedObjectModel];
for(NSEntityDescription *entity in [model entities]) {
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entity];
NSError *error;
NSArray *results = [context executeFetchRequest:request error:&error];
// Error-checking here...
for(NSManagedObject *object in results) {
// Do your updates here
}
}
주 (isKindOfClass:
또는 관련 방법을 사용하여) 클래스 어떤지를 판정하거나 entity
에 managedObjectClassName
속성을 사용하여 (현재의 실체가 무엇인지 수준 파악으로 하나 필요에 반환 NSClassWithName()
방법과 함께).
캐스팅이 필요하지 않습니다. 모든 fetch 메소드와 -objectAtIndex : 메소드는 id를 반환합니다. NSManagedObject의 모든 속성은 KVC를 통해 액세스 할 수 있으며 -doesRespondToSelector : –
을 통해 쿼리 할 수 있지만'doesRespondToSelector :'호출로 흩어져있는 코드로 인해 좌절하는 경향이 있습니다. 꼭 필요한 것은 아니지만 캐스팅은 훨씬 더 많은 읽을 수 있습니다. – Tim
이 문제는 매우 무거운 수동 방식입니다. 데이터에 잘못된 데이터가로드되는 경우 은 데이터를 가져 오는 동안 수정하는 것이 좋습니다. 팀의 대답은 당신이하고있는 일에 효과가있을 것입니다. 그러나 저는 당신이이 잘못을 저지르고 있다고 확신합니다. 잠재적 인 불량 데이터를 찾는 전체 데이터베이스를 반복하는 것은 매우 비효율적입니다.
내가 게시 한 답변보다 훨씬 더이 접근 방식에 동의 할 것입니다. 잘못된 데이터가 "처음으로"가져 오는 것을 안다면 나중에 가져 오기가 아니라 가져 오기에서이를 수정할 수 있어야합니다. – Tim
'잘못된 데이터'로 관리 개체가 생성되는 경우 모든 개체의 모든 속성에 대해 모델에서 기본값을 설정했는지 확인해야합니다. 이 방법을 사용하면 객체를 컨텍스트에 삽입 할 때마다 해당 값이 포함됩니다. 거기에서 필요한 속성으로 속성을 설정할 수 있습니다.
- 1. 리스트리스트를 반복할까요?
- 2. 선택한 jQuery 객체의 배열을 반복할까요?
- 3. NSManagedObjectContext 제대로
- 4. NSManagedObjectContext 얻기
- 5. 특정 유형의 IQueryable을 반복할까요?
- 6. 문자열에서 행을 반복할까요?
- 7. 여러 NSManagedObjectContext 문제
- 8. NSManagedObjectContext 내부를 살펴볼 방법이 있습니까?
- 9. JavaScript에서 XPath 표현식으로 프레임 세트를 반복할까요?
- 10. 다른 NSManagedObjectContext (동일한 NSPersistentStoreCoordinator 참조)에서 NSManagedObject 가져 오기
- 11. 여러 NSManagedObjectContext 간의 무한 재귀 동기화 방지
- 12. NSManagedObjectContext 및 NSArrayController 재설정/새로 고침 문제
- 13. NSManagedObjectMergeError 오류 [NSManagedObjectContext save :]에 대한 이유
- 14. NSManagedObjectContext 캐싱 UITableView 셀을 사라지려면 저장
- 15. NSManagedObjectContext : 자동 업데이트 또는 안 함?
- 16. 인터페이스 빌더를 사용하여 뷰에 NSManagedObjectContext 전달
- 17. NSManagedObjectContext = nil을 가져 오는 첫 번째 시도 후 왜입니까?
- 18. 스레드 당 여러 개의 NSManagedObjectContext 인스턴스를 갖는 것이 좋습니까?
- 19. 지연 NSFetchedResultsController가 NSManagedObjectContext 저장으로 인해 업데이트 될 때 UITableView 업데이트
- 20. NSManagedObjectContext 및 iphone/ipad 탭간에 다른 서비스 클래스를 공유합니다.
- 21. 조언 : 메모리 부족 상태에서 [NSManagedObjectContext reset]을 고려해야합니까?
- 22. 왜 "NSManagedObjectContext"이전에 오류 : 예상 지정자 - 한정자 목록이 있습니까?
- 23. DOM 객체를 전달하여 JQuery 객체를 생성 하시겠습니까?
- 24. 인터페이스와 그 객체를 구현하는 모든 객체를 테스트해야합니까?
- 25. 델파이 : 배열 객체를 포함하여 객체를 XML로 스트림
- 26. PHP가 새 객체를 만들거나 기존 객체를 사용한다면?
- 27. 매번 새로운 객체를 만들거나 하나의 객체를 만들어야합니까?
- 28. 'system.data.datatable'유형의 객체를
- 29. NSManagedObjectContext (할당 해제 된 insance)의 두 번째 저장시 오류가 발생했습니다.
- 30. CoreData - 가져 오기가 객체를 찾지 못합니다.
무엇을하려하십니까? 왜 이럴 필요가 있다고 생각하니? –
처음에는 많은 정보가 잘못된 정보로 생성됩니다. 수동으로 수정해야합니다. – cactus