thread veiligheid voor NSManagedObject-instanties?

Ik heb één globale instantie voor een van het type NSManagedObject. Voor het globale exemplaar zijn er slechts enkele lidvariabelen die @dynamic-eigenschappen op de volgende manier hebben gedeclareerd

@property (retain) NSString *value;

En ik heb een paar threads die de volgende eenvoudige bewerkingen zouden doen

myInstance.value = [NSString stringWithString:newValue];

Dus de vraag is - moet ik de bovenstaande operatie synchroniseren? of is het van nature al thread-safe (zoals ze oppast door NSManagedObject)?

0
sorry, ik heb het opgelost - zou bovenstaande operatie moeten zijn. de bewerking bedoeld als toewijzingsbewerking
toegevoegd de auteur tom, de bron

1 antwoord

Volgens de documentatie is dit niet thread-safe. Er is een heel artikel over threading en Core Data dat u kunt lezen hier . In wezen zegt het dat om threading met Core Data goed te gebruiken, u voor elke thread een afzonderlijke beheerde objectcontext nodig hebt. In het gedeelte 'Als u de draad niet insluit', wordt specifiek vermeld dat zowel het lezen als muteren van beheerde objecten in verschillende threads ongewenste effecten kan hebben.

3
toegevoegd