samedi 14 mars 2015

CoreData managedObjectContext save Violates UNIQUE constraint for Z_PK

I am using CoreData in an iOS application to manage words in a "flash cards" application for people learning new languages.


The problem I'm having is that when I set up the data for a new entity and try to save it to the data store, I get a violation of a UNIQUE CONSTRAINT requirement on the sqlite database. The column in question is the Z_PK column, which I understand to be a PRIMARY KEY created by the iOS core data methods when the data store is initially created.


Here's the UNIQUE CONSTRAINT message I'm getting when I attempt the save:



2015-03-14 09:25:14.427 ghoti[25856:1107373] CoreData: error: (1555) UNIQUE constraint failed: ZGHOTIENTITY.Z_PK (lldb)



Z is the prefix stuck on all of these SQL columns

GHOTIENTITY is my data store

Z_PK is the primary key


Here's a quick screenshot of the data table inside the sqlite "editor" in firefox: datastructure from sqlite


The definition of the business object entity itself does not include the Z_PK column:



@implementation ghotiEntity

@dynamic numberCorrect;
@dynamic numberIncorrect;
@dynamic likelihoodOfPresentingWord;
@dynamic englishText;
@dynamic hebrewText;
@dynamic phoneticText;

@end


I'd be annoyed - but compliant - if it were as simple as just setting the ghotiEntity.Z_PK to the maximum value of Z_PK in the datastore + 1, but that column is not even part of the entity definition in the first place.


Aucun commentaire:

Enregistrer un commentaire