그래서 내가 직면 한 문제가 있습니다. NSFetchedResultsController에 의해 뒷받침되는 UITableView가 있습니다. 이제 응용 프로그램을 시작할 때 여러 네트워크 호출을 만들고 들어오는 데이터를 처리하는 데이터 소스를 업데이트합니다. 데이터 소스가 업데이트되는 동안 사용자가 행 중 하나를 삭제하면 비동기 네트워크 콜백에서 삭제 된 데이터에 액세스하면 앱이 충돌합니다. 이 시나리오를 정상적으로 처리하려면 어떻게합니까?삭제 후 CoreData 객체 액세스에 액세스하지 못하도록
1
A
답변
0
개체에 액세스하기 전에 개체에 isDeleted
(으)로 전화 해보세요.
0
NSFetchedResultsController의 메모리 추적을 사용하는 경우 레코드가 영구 저장소에서 제거되기 전에 인터페이스에서 레코드를 제거 할 수 있습니다. NSFetchedResultsController 대리자의 NSFetchedResultsChangeType을 읽고 개체가 삭제되는 백그라운드 스레드의 NSManagedObjectContext와 레코드를 읽는 NSManagedObjectContext를 병합했는지 확인하십시오.
개체가 삭제되었는지 확인하는 좋은 방법은 existingObjectWithID : error :를 사용하여 현재 개체 ID로 기존 개체를 확인하는 것입니다. 이것은 NSFetchedResultsController없이 NSManagedObjects를 사용할 때 매우 유용합니다.
관련 문제
- 1. 내 프로그램이 파일 시스템에 액세스하지 못하도록
- 2. Joomla에서 페이지에 직접 액세스하지 못하도록
- 3. javascript 함수가 DOM에 액세스하지 못하도록
- 4. coreData 개체 삭제 (업데이트)
- 5. CoreData delete 객체
- 6. JSF 필터가 특정 페이지에 직접 액세스하지 못하도록
- 7. 다른 앱이 인터넷에 액세스하지 못하도록 차단하십시오.
- 8. 사용자가 다른 사용자 계정에 액세스하지 못하도록 차단
- 9. 검색 엔진이 특정 데이터베이스 필드에 액세스하지 못하도록
- 10. 다른 사용자가 데이터베이스 파일을 액세스하지 못하도록 보장
- 11. 다른 사람들이 액세스하지 못하도록 이미지를 안전하게 만듭니다.
- 12. 타사 어셈블리가 리소스에 액세스하지 못하도록 함
- 13. 사용자가 jsp 파일에 직접 액세스하지 못하도록
- 14. jquery 게시 URL에 직접 액세스하지 못하도록
- 15. 배열/객체 액세스에 대한 도움말
- 16. 사용자가 일부 작업에 액세스하지 못하도록 제한하고 로그인 팝업을 표시하는 방법
- 17. CoreData 기본값 삭제 안 함
- 18. 관리 객체 컨텍스트 삭제 후 객체 저장 objc_exception_throw 오류 발생
- 19. CoreData 편집/덮어 쓰기 객체
- 20. SQL과 같은 CoreData 객체 모델
- 21. Coredata 삭제 규칙 혼란, 엑스 코드
- 22. 문제를 저장 한 후 CoreData 관계가 사라졌습니다.
- 23. 현재 액세스하지 않는 경우 파일 삭제
- 24. 비밀번호로 보호 된 디렉토리가 내부 사이트에 액세스하지 못하도록
- 25. 자바에서 클래스 외부에 액세스하지 못하도록 변수를 제한하는 방법은 무엇입니까?
- 26. 여러 사용자가 액세스하지 못하도록 파일을 잠그는 가장 좋은 방법은 무엇입니까
- 27. .htaccess/apache conf를 사용하지 않고 war 파일에 액세스하지 못하도록 함
- 28. 사용자가 컨트롤러의 특정 동작에 액세스하지 못하도록 제한하는 방법?
- 29. MAC 주소가 특정 포트에 액세스하지 못하도록 차단 - C++
- 30. Java EE 앱에서 사용자가 폴더에 액세스하지 못하도록 제한
백그라운드 스레드에서 업데이트가 진행되는 동안 주 스레드에서 삭제가 발생합니다. 비록 내가 existingObjectWithID : error :를 체크하더라도, 백그라운드 스레드에서, 체크가 끝난 후에 그 객체가 삭제된다는 것이 아주 잘 일어납니다. 어떻게 처리할까요? 기본적으로 삭제를 위해 삭제 업데이트 충돌을 해결하려면 어떻게해야합니까? –
핵심적인 데이터 문제보다 더 많은 아키텍처 문제가 있습니다. 이것은 멀티 스레딩 작업의 까다로운 부분입니다. 핵심 데이터의 경우 컨텍스트가 동기화되어 있는지 확인해야합니다. 개체가 메인 스레드에서 삭제되는 장소는 조작중인 개체/개체에 대한 변경 사항을 모니터링해야합니다. 객체를 업데이트하는 백그라운드 스레드와 동일한 작업. 이 방법은 개체가 주 스레드에서 삭제 된 경우 업데이트가 허용되지 않습니다. 하지만 먼저 디자인을 자세히 살펴보십시오. 이러한 유형의 조작을 처리하려면 직렬 대기열이 필요할 수 있습니다. – J2theC