핵심 데이터 설정 다중 managedObjectContexts

해리 사악

작업중인 앱에서 동시에 Core Data에 액세스하고 기록해야합니다. 나는 이것이 여러 managedObjectContexts를 사용자가 필요하다는 것을 의미하지만 그 두 managedObjectContexts를 어떻게 설정 해야하는지 이해하지 못한다는 것을 모을 수있었습니다.

일단 설정을 마치면 managedObjectContext의 백그라운드 스레드에서 쓰기 작업을 수행 한 다음 Core Data and threads / Grand Central Dispatch와 같은 작업을 통해 데이터를 병합해야한다는 것을 이해합니다 .

그래서 내 질문은 두 개의 개별 managedObjectContext를 시작하여 설명한대로 사용할 수 있도록 어떻게할까요?

웨슬리

이렇게 NSManagedObjectContexts똑같은 두 개를 따로 만들어야 NSPersistentStoreCoordinator합니다.

먼저이 생성 NSManagedObjectContexts으로 이름 backgroundManagedObjectContextmainBackgroundManagedObjectContext같은 모델 클래스

+ (NSManagedObjectContext *)backgroundManagedObjectContext
    {
        static NSManagedObjectContext * backgroundManagedObjectContext;
        if(backgroundManagedObjectContext != nil){
            return backgroundManagedObjectContext;
        }
        @try {
            NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
            if (coordinator != nil) {
                backgroundManagedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
                [backgroundManagedObjectContext setPersistentStoreCoordinator: [self persistentStoreCOordinator]];
            }
        }
        @catch (NSException *exception) {
            NSLog(@"Exception occur %@",exception);
        }
        return backgroundManagedObjectContext;

    }

그런 다음 둘 다 동일 persistentStoreCoordinator해야하고 다음 과 같이 데이터를 저장할 때마다 에 병합해야 backgroungManagedObjectContext합니다 mainBackgroundManagedObjectContext.NSNotificationbackgroundManageObjectContext

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(contextDidSave:)
                                                 name:NSManagedObjectContextDidSaveNotification
                                               object:nil];

그런 다음 mainManagedObjectContext이와 같이 업데이트하기 위해이 알림 방법을 구현해야 합니다.

- (void)contextDidSave:(NSNotification *)notification
    {
        SEL selector = @selector(mergeChangesFromContextDidSaveNotification:);
        [[self mainManagedObjectContext] performSelectorOnMainThread:selector withObject:notification waitUntilDone:YES];

    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

핵심 데이터 : NSSet Swift 설정

분류에서Dev

핵심 데이터-대다 관계 속성에 대한 정보

분류에서Dev

핵심 데이터, 중첩 목록

분류에서Dev

핵심 데이터 중첩 배열 수

분류에서Dev

핵심 데이터의 중첩 문제

분류에서Dev

mergeChangesFromContextDidSaveNotification 중 핵심 데이터 충돌

분류에서Dev

핵심 데이터 실패 수정

분류에서Dev

핵심 데이터 일대 다 관계

분류에서Dev

iOS에서 다 대다 관계를 설정하려면 어떻게해야합니까? (핵심 데이터)

분류에서Dev

핵심 데이터 : 일대 다 관계-저장된 세부 정보 없음

분류에서Dev

SwiftUI Picker 다중 오류, 핵심 데이터, 레이아웃

분류에서Dev

비교기가있는 핵심 데이터 정렬 설명자

분류에서Dev

앱 설정에 핵심 데이터 사용

분류에서Dev

awakeFromInsert 대 핵심 데이터의 기본값 설정

분류에서Dev

다중 관계가있는 핵심 데이터 하위 쿼리

분류에서Dev

특정 데이터를 추가하는 대신 전체 핵심 데이터 개체 다시로드

분류에서Dev

핵심 데이터에서 이미지를로드하면 NavigationView 전환이 불안정 해집니다.

분류에서Dev

핵심 데이터-이중 속성-기본 수학 연산

분류에서Dev

핵심 데이터 다 대다 관계에서 중복 레코드 허용

분류에서Dev

속성 값이 정의 된 핵심 데이터 개체 수

분류에서Dev

Redis 데이터 액세스를위한 핵심 설계

분류에서Dev

저장 중 핵심 데이터 성능 문제

분류에서Dev

특정 ID의 핵심 데이터 키 값 수정

분류에서Dev

iOS, 핵심 데이터. 다중 스레드 사용시 매우 느림

분류에서Dev

다중 스레드 블록에서 핵심 데이터 NSRangeException 크래시

분류에서Dev

핵심 데이터 다 대다 술어 (다시)

분류에서Dev

핵심 데이터 저장이 너무 오래 걸립니다

분류에서Dev

다 대다 관계에서 핵심 데이터 검색

분류에서Dev

UITableViews에서 핵심 데이터 관계 및 / 또는 NSPredicate 정렬

Related 관련 기사

  1. 1

    핵심 데이터 : NSSet Swift 설정

  2. 2

    핵심 데이터-대다 관계 속성에 대한 정보

  3. 3

    핵심 데이터, 중첩 목록

  4. 4

    핵심 데이터 중첩 배열 수

  5. 5

    핵심 데이터의 중첩 문제

  6. 6

    mergeChangesFromContextDidSaveNotification 중 핵심 데이터 충돌

  7. 7

    핵심 데이터 실패 수정

  8. 8

    핵심 데이터 일대 다 관계

  9. 9

    iOS에서 다 대다 관계를 설정하려면 어떻게해야합니까? (핵심 데이터)

  10. 10

    핵심 데이터 : 일대 다 관계-저장된 세부 정보 없음

  11. 11

    SwiftUI Picker 다중 오류, 핵심 데이터, 레이아웃

  12. 12

    비교기가있는 핵심 데이터 정렬 설명자

  13. 13

    앱 설정에 핵심 데이터 사용

  14. 14

    awakeFromInsert 대 핵심 데이터의 기본값 설정

  15. 15

    다중 관계가있는 핵심 데이터 하위 쿼리

  16. 16

    특정 데이터를 추가하는 대신 전체 핵심 데이터 개체 다시로드

  17. 17

    핵심 데이터에서 이미지를로드하면 NavigationView 전환이 불안정 해집니다.

  18. 18

    핵심 데이터-이중 속성-기본 수학 연산

  19. 19

    핵심 데이터 다 대다 관계에서 중복 레코드 허용

  20. 20

    속성 값이 정의 된 핵심 데이터 개체 수

  21. 21

    Redis 데이터 액세스를위한 핵심 설계

  22. 22

    저장 중 핵심 데이터 성능 문제

  23. 23

    특정 ID의 핵심 데이터 키 값 수정

  24. 24

    iOS, 핵심 데이터. 다중 스레드 사용시 매우 느림

  25. 25

    다중 스레드 블록에서 핵심 데이터 NSRangeException 크래시

  26. 26

    핵심 데이터 다 대다 술어 (다시)

  27. 27

    핵심 데이터 저장이 너무 오래 걸립니다

  28. 28

    다 대다 관계에서 핵심 데이터 검색

  29. 29

    UITableViews에서 핵심 데이터 관계 및 / 또는 NSPredicate 정렬

뜨겁다태그

보관