On 2009 Jun 21, at 09:55, Quincey Morris wrote:

Unless you can see 2 different objects with the same UID ...

More precisely, you mean "the same -objectID".

Yup. To our surprise, my fetch request is returning two objects with the same objectID, or from a Core Data perspective, I suppose you'd call it two copies of the same managed object.

Here's the fetching code from the NSPersistentDocument subclass in my actual project:

NSFetchRequest* fetchRequest = [[NSFetchRequest alloc] init] ;
[fetchRequest setEntity:[NSEntityDescription entityForName:@"Browfile_entity" inManagedObjectContext:[self managedObjectContext]]] ;
NSError* error_ = nil ;
NSArray* mocBrowfiles = [[self managedObjectContext] executeFetchRequest:fetchRequest error:&error_] ;
[fetchRequest release] ;
if (error_) {
    // Handle error
    ... this does not execute ...
}
NSLog(
      @"46985: uniqueIDs of fetched objects:\n%@",
      [mocBrowfiles valueForKey:@"stringID"]
      ) ;

NSLog(@"47115: pointers to fetched objects:\n") ;
for (Browfile* browfile in mocBrowfiles) {
    NSLog(@"    %p", browfile) ;
}


Here's my -[NSManagedObject stringID] method:

- (NSString*)stringID {
    NSManagedObjectID* objectID = [self objectID] ;
    NSString* string = [[objectID URIRepresentation] absoluteString] ;
    NSString* suffix = [objectID isTemporaryID] ? @"temp" : @"perm" ;
    return [NSString stringWithFormat:
            @"%...@[%@]",
            string,
            suffix] ;
}


Here's the console output:

2009-06-21 13:04:00.993 TestApp[77117:10b] 46985: uniqueIDs of fetched objects:
(
"x-coredata://101E2F60-412A-41EE-9DEF-59797757C29C/ Browfile_entity/p1[perm]", "x-coredata://101E2F60-412A-41EE-9DEF-59797757C29C/ Browfile_entity/p2[perm]"
)
2009-06-21 13:04:00.995 TestApp[77117:10b] 47115: pointers to fetched objects:
2009-06-21 13:04:00.999 TestApp[77117:10b]     0x16e0c9b0
2009-06-21 13:04:01.006 TestApp[77117:10b]     0x16e43f20

I believe that I inserted one Browfile object into the store. But even if I screwed up somewhere and actually inserted two, why does this fetch request return two objects with exactly the same permanent objectID? Has anyone ever seen that?

It's not the fact that I'm using an SQLite store. I tried my little utility project with an SQLite store, and saving it, and it works correctly. It still only returns one Bar (aka Browfile).


_______________________________________________

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

Reply via email to