Как фоновые контексты узнают друг друга о спасениях? - PullRequest
0 голосов
/ 22 октября 2019

Рассмотрим этот псевдокод:

func testSome() {
    let context1 = inMemoryStore.newBackgroundContext()

    context1.performAndWait {
        // Inserting entity...

        // Ok, it is saved and it is present in the viewcontext of inMemoryStore, this is what I would expect.
        try! context1.save()

        // Create a new background context, where the newly created object will be in
        let context2 = inMemoryStore.newBackgroundContext()

        context2.performAndWait {
            let title = "title"

            let objectWithTitle = // retrieve method

            // The titles didn't match in this test case
            guard objectWithTitle.title != title else { return }

            conversation.title = title

            // Saving back, I don't expect it to save on context1 also because I didn't set https://developer.apple.com/documentation/coredata/nsmanagedobjectcontext/1845237-automaticallymergeschangesfrompa to true
            try! context2.save()

            context1.performAndWait {
                let objectWithTitle2 = // retrieve method

                // It passes!! How?!
                XCTAssertEqual(title, objectWithTitle2.title)
            }
        }
    }
}

Я получил в хранилище памяти 2 фоновых контекста, ни одному из них не присвоено automaticallyMergesChangesFromParent значение true, поэтому я не ожидаю, что они автоматически узнают каждыйдругие сохраняют, но они делают. Как? automaticallyMergesChangesFromParent является чем-то устаревшим, потому что я видел это в iOS 10 <код? Все ли фоновые контексты знают, что друг друга спасает? </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...