내 애플리케이션에 핵심 데이터를 사용하고 있습니다. 4-5 테이블 중 하나는 userProfile 테이블입니다. 나는 앱에서 로그 아웃을 구현했다. 사용자가 사용자 프로필을 삭제하는 앱에서 로그 아웃 한 경우 다른 사용자 계정으로 로그인 한 경우 새 계정을 삽입합니다. 내가 userprofile 삭제에 대한 데이터베이스에서 모든 레코드를 삭제하고 싶습니다. 이 관계를 사용하여 메신저 있지만 사용자 프로필 레코드가 삭제 된 경우에도 데이터베이스에서 다른 레코드를 삭제하지 않습니다. 내가 언급하고자하는 한 가지는 모든 데이터가 서비스에서 나옵니다. 나는 계단식 삭제 규칙을 userprofile 테이블과 다른 테이블 사이에 생성 된 관계에 사용하고 있습니다.관계를 사용하여 코어 데이터 데이터베이스에서 모든 테이블 레코드 삭제
3
A
답변
4
두 가지 방법으로이를 수행 할 수 있습니다.
첫 번째는 저장소를 삭제하고 다시 만듭니다. 즉, 파일 시스템의 저장소에 액세스하고 sql 파일을 삭제하는 등의 작업을 의미합니다. 예를 들어 다음 토론에서 달성 방법을 찾을 수 있습니다 : Delete/Reset all entries in Core Data?.
두번째 해결책은 다른 것들에 연결한다 UserProfile
엔티티 연쇄 관계를 생성하는 것이다. 후자에서는 반비례 관계를 설정해야합니다 (무효화가 올바른 접근 방식입니다). 자세한 내용은 Setting up a parent-child relationship in Core Data에서 내 대답을 참조하십시오.
4
그래서 나는 Delete/Reset all entries in Core Data 방법을 사용했다. 이를 위해 다음 코드를 사용합니다.
NSError * error;
NSURL * storeURL = [[AppDelegate.managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[AppDelegate.managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]];
[AppDelegate.managedObjectContext lock];
[AppDelegate.managedObjectContext reset];//to drop pending changes
//delete the store from the current managedObjectContext
if ([[AppDelegate.managedObjectContext persistentStoreCoordinator] removePersistentStore: [[[AppDelegate.managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:&error])
{
// remove the file containing the data
[[NSFileManager defaultManager] removeItemAtURL:storeURL error:&error];
//recreate the store like in the appDelegate method
[[[AppDelegate managedObjectContext] persistentStoreCoordinator] addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options: @{NSMigratePersistentStoresAutomaticallyOption:@YES, NSInferMappingModelAutomaticallyOption:@YES} error:&error];
}
[AppDelegate.managedObjectContext unlock];
//that's it !
이것은 나를 위해 일했습니다.
관련 문제
- 1. 데이터 바인딩을 사용하여 데이터베이스에서 레코드 삭제
- 2. UITableView 및 코어 데이터를 사용하여 데이터베이스에서 하나의 레코드 삭제
- 3. MDF 데이터베이스에서 레코드 삭제
- 4. 데이터베이스에서 레코드 삭제
- 5. 모든 Azure 테이블 레코드 삭제
- 6. jQuery를 사용하여 데이터베이스에서 레코드 삭제
- 7. bindingnavigator를 사용하여 데이터베이스에서 레코드 삭제
- 8. 아약스를 사용하여 데이터베이스에서 레코드 삭제
- 9. SplitView 컨트롤러의 상세보기에서 코어 데이터 레코드 삭제
- 10. 데이터베이스에서 일괄 삭제 레코드
- 11. sqlite 데이터베이스에서 레코드 삭제
- 12. vb에서 listview의 데이터베이스에서 레코드 삭제
- 13. PHP를 사용하여 SQL 데이터베이스에서 레코드 삭제
- 14. 코어 데이터 테이블 뷰 크래시 삭제
- 15. 코어 데이터 개체 및 테이블 셀 삭제
- 16. Java를 사용하여 sqlite 데이터베이스에서 레코드 삭제
- 17. 폼 단추를 사용하여 SQLite 데이터베이스에서 레코드 삭제
- 18. 테이블이 포함 된 모든 데이터베이스에서 테이블 삭제
- 19. NSFetchedResultsController를 사용하여 코어 데이터 엔티티 레코드 검색
- 20. Ajax 요청으로 데이터베이스에서 레코드 삭제
- 21. 모든 환경 설정/코어 데이터 삭제
- 22. 테이블에서 모든 레코드 삭제
- 23. SQLite를 사용하여 테이블의 모든 레코드 삭제
- 24. Ember 데이터 : 서버의 레코드 삭제
- 25. Postgres 데이터베이스에서 데이터 삭제
- 26. 코어 데이터가 삭제 된 관계를 저장하지 않음
- 27. 모든 연관 관계를 삭제 한 레코드 만 찾으십시오
- 28. XOJO SQLite 데이터베이스에서 레코드 삭제
- 29. mongodb 데이터베이스에서 테이블 삭제
- 30. 데이터베이스에서 __MigrationHistory 테이블 삭제
모델 사진과 계단식으로 설정된 관계를 표시 할 수 있습니까? – Wain
userProfile 이외의 테이블이 3 개 있습니다. 나는 나머지 테이블에 대해 정의한 모든 관계에 캐스케이드를 사용합니다. say UserProfile -> 기사는 계단식 규칙을 가지며 그 반대도 마찬가지입니다. –
귀하의 관계는 양방향입니까? 양쪽 끝은 계단식입니까? – Wain