views:

33

answers:

1

Im trying to save a list of Device classes (a custom class) using Core Data and retrieve it. But After I save it, my query, which is VERY simple, doesnt return any records.

My call to save the records always returns YES and no errors:

BOOL resultOfSave = [managedObjectContext save:&err];

My predicate for searching by the property userLogin is like so:

- (NSArray *) devicesForUser:(NSString *)username 
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Device" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userLogin = %@", username];
[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"macAddress" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];

NSError *error = nil;
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
if (fetchResults == nil) {
    // Handle the error.
    NSLog(@"ERROR: nil fetch result array");
}

[request release];
NSLog(@"devicesForUser [%@] count %d", username, [fetchResults count]);
return fetchResults;    
}

but I always get zero results, if I get rid of the predecate, I get all the objects, and if I loop through them I can see that the userLogin property for at least one of the object IS set to the username that I pass in...

Has anyone ever had an issue like this???

Thanks for any help you can give

Mark

+1  A: 

In your predicate, change:

@"userLogin = %@"

...to:

@"userLogin == %@"
TechZen
ok, ill try that thanks...
Mark
ok, seemed to work... there were a lot of other issues here, so it may have been a combination of things, but this certainly helped :)
Mark