I'm seeing a strange thing with a predicate. When I apply the predicate to a fetch request, it doesn't return any results, but when I do the fetch without the predicate and then use filteredArrayUsingPredicate to filter the results, it has the matching row that I expect.
Here are the results of a query without any predicate: (gdb) po [[topic managedObjectContext] executeFetchRequest:request error:&error] <NSCFArray 0x16d15da0>( <NMAttachmentMO: 0x19e3e780> (entity: Attachment; id: 0x1e095f40 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Attachment/p39C7B8FF-EC6C-451B-9622-F3BDC8DCBB94> ; data: { displayName = "Import test map (picture)"; fileName = "Import test map.png"; nmObjectId = "72172A92-408D-41FA-AAB6-2132C4641AA5"; resource = "0x1e06b400 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Resource/pE9C234AD-2A42-4C87-973A-D6B61AD409DD>"; topic = "0x1e0953b0 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Topic/p5A7F2F62-3B71-434A-9C90-3C8116190D04>"; }), <NMAttachmentMO: 0x150dace0> (entity: Attachment; id: 0x1e08ee10 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Attachment/pC15B4925-7B19-45D9-9F0D-2CD0BF549DFD> ; data: { displayName = "example RSS feed opml"; fileName = "rss_sharpreader.opml"; nmObjectId = "DAC4868B-C8BA-41DB-9CC1-6F85193EC7B5"; resource = "0x36f98c0 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Resource/p2A467945-4674-472B-AA88-73FD47623EE4>"; topic = "0x1e08dbd0 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Topic/p63A290FB-EAA9-4750-955C-440352D50349>"; }), <NMAttachmentMO: 0x1e165630> (entity: Attachment; id: 0x1e091ee0 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Attachment/pCD474E6F-4AAA-4E6D-B2FC-478381F590AE> ; data: { displayName = nil; fileName = "import test mind map(novamind).png"; nmObjectId = "784A6E81-2EEF-42F5-8D08-05F6B58A8B55"; resource = "0x1e0fa240 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Resource/p9D511092-DED8-4A29-94D6-8FC998108D82>"; topic = "0x1e08d830 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Topic/p7A88A2D6-9A96-4B24-BCF2-56FC62BB3D64>"; }) ) And here's my predicate: (gdb) po predicate nmObjectId == "784A6E81-2EEF-42F5-8D08-05F6B58A8B55" If I apply that predicate to the results of my fetch request: (gdb) po [results filteredArrayUsingPredicate:predicate] <NSCFArray 0xe71490>( <NMAttachmentMO: 0x1e165630> (entity: Attachment; id: 0x1e091ee0 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Attachment/pCD474E6F-4AAA-4E6D-B2FC-478381F590AE> ; data: { displayName = nil; fileName = "import test mind map(novamind).png"; nmObjectId = "784A6E81-2EEF-42F5-8D08-05F6B58A8B55"; resource = "0x1e0fa240 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Resource/p9D511092-DED8-4A29-94D6-8FC998108D82>"; topic = "0x1e08d830 <x-coredata://75C22C98-BAF0-444B-BD95-A4F6B31153D4/Topic/p7A88A2D6-9A96-4B24-BCF2-56FC62BB3D64>"; }) ) So all that's as expected, but if I set exactly that predicate on my fetch request, no results match: (gdb) call (void)[request setPredicate:predicate] (gdb) po [[topic managedObjectContext] executeFetchRequest:request error:&error] <NSCFArray 0x37b5a50>( ) I am really mystified by this - I can't understand why it would not work when applied to a fetch request, but would work when applied to the array of results. Any suggestions? Here's my code which returns 0 rows: NSString *attachmentID = [[url path] lastPathComponent]; NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSError *error = nil; NSEntityDescription *entity = [NSEntityDescription entityForName:kNMAttachmentEntityKey inManagedObjectContext:[topic managedObjectContext]]; [request setEntity:entity]; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"nmObjectId == %@", attachmentID]; [request setPredicate:predicate]; NSArray *results = [[topic managedObjectContext] executeFetchRequest:request error:&error]; [request release]; Regards Gideon _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com