por que a fila NSManagedObjectContext é executada no thread principal?

Quando mando umperformBlock mensagem para o meu MOC do tipoNSPrivateQueueConcurrencyType, como isso:

[self.privateManagedObjectContext performBlockAndWait:^{
    if ([[NSThread currentThread] isMainThread]) {
        NSLog(@"executing on the main thread!!");        
    }
    …
}];

Acho que, por padrão, isso é executado no thread principal. O condicional no código acima é acionado e o Navegador de Problemas indica que a execução está ocorrendo emThread 1 noNSManagedObject Queue.

Isso é muito intrigante para mim, porque a Apple nos diz que "cada segmento deve ter seu próprio contexto de objeto gerenciado inteiramente privado". Dado que um MOC do tipoNSMainQueueConcurrencyType usará o encadeamento principal, não viola o confinamento de encadeamento para um MOC do tipoNSPrivateQueueConcurrencyType usar o thread principal?

A execução do meu código no thread principal é normal? Entendi mal o confinamento de threads? Entendo que uma fila não está necessariamente vinculada a um encadeamento específico, mas, neste caso, parece que a fila MOC privada deve, no mínimo, evitar o encadeamento principal, se não tiver um único encadeamento obrigatório. Estou tendo alguns erros estranhos, então preciso descobrir o que está acontecendo. Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion