If I have:
NSMutableDictionary keyValues = new NSMutableDictionary();
keyValues.takeValueForKey( userFirstName, User.FirstNameKey );
keyValues.takeValueForKey( userLastName, User.LastNameKey );
keyValues.takeValueForKey( userEmail, User.EmailKey );
keyValues.takeValueForKey( userPassword, User.PasswordKey );
This will throw an EOObjectNotAvailableException
EOUtilities.objectMatchingValues( session().defaultEditingContext(),
User.ENTITY_NAME, keyValues );
However, if I instead do:
EOQualifier q = new EOAndQualifier( new NSArray( new Object[] {
new EOKeyValueQualifier( Contact.FirstNameKey,
EOQualifier.QualifierOperatorEqual, userFirstName ),
etc
} ) );
EOFetchSpecification fetchSpec = new EOFetchSpecification
( User.ENTITY_NAME, q, null );
This will happily find the record:
session().defaultEditingContext().objectsWithFetchSpecification
( fetchSpec ).objectAtIndex( 0 );
Can someone explain this? Peaking at the source for EOUtilities it
does the same thing... so why would this fail?