SCENARIO 1:

The thread is:
0 - [SRMainWindowController toggleLock:]  //self = (SRMainWindowController *) 
0x20009d440
1-[NSToolbarButton sendAction:to:]

- (IBAction)toggleLock:(id)sender {
    
    NSError *fetchError = nil;
        NSArray *fetchResults;
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        
        NSEntityDescription *entity = [NSEntityDescription 
entityForName:@"Note" inManagedObjectContext:[self managedObjectContext]];
        [fetchRequest setEntity:entity];
        fetchResults = [[self managedObjectContext] 
executeFetchRequest:fetchRequest error:&fetchError];
        
    Note *note = nil;
        if (fetchRequest != nil && [fetchResults count] == 1)  {
                note = [fetchResults objectAtIndex:index];  //note = (Note 
*)0x20027bfe0
    }

    
    if (note) {
        [note setIsEncrypted:[NSNumber numberWithBool:YES]];  // see below
    }
}




When I jump into  note setIsEncrypted:[NSNumber numberWithBool:YES]]; in the 
Note managedObject

self = (Note *)0x20027bfe0  // same as above
value = (NSCFBoolean *) 0x7fff70886280

po self
<Note> uid:319649395851582
 category:None
 isEncrypted:0
 isFlagged:0
(gdb) 

- (void)setIsEncrypted:(NSNumber *)value {
        [self willChangeValueForKey:@"isEncrypted"];    
        [self setPrimitiveValue:value forKey:@"isEncrypted"];
        [self didChangeValueForKey:@"isEncrypted"];
        // see backtrace
}

As soon as I po after the setPrimitive I get:

Breakpoint 26, -[SRMainWindowController toggleLock:] (self=0x20009d440, 
_cmd=0x1000a92b1, sender=0x20009d440) at SRMainWindowController.m:2891
2891            if (fetchRequest != nil && [fetchResults count] == 1)  {
The program being debugged stopped while in a function called from GDB.
When the function (_NSPrintForDebugger) is done executing, GDB will silently
stop (instead of continuing to evaluate the expression containing
the function call).




#0  -[Note setIsEncrypted:] (self=0x2000b7600, _cmd=0x1000a6eb8, 
value=0x7fff70886280) at Note.m:206
#1  0x000000010002d5c9 in -[SRMainWindowController toggleLock:] 
(self=0x200078f80, _cmd=0x1000a9239, sender=0x2000a0c20) at 
SRMainWindowController.m:2897
#2  0x00007fff83b2afbf in -[NSToolbarButton sendAction:to:] ()
#3  0x00007fff8379c135 in -[NSToolbarItemViewer mouseDown:] ()
#4  0x00007fff8368934f in -[NSWindow sendEvent:] ()
#5  0x00007fff835bea86 in -[NSApplication sendEvent:] ()
#6  0x00007fff835554da in -[NSApplication run] ()
#7  0x00007fff8354e1a8 in NSApplicationMain ()
#8  0x0000000100006b60 in main (argc=1, argv=0x7fff5fbff628) at main.m:13




SCENARIO 2:
I created a second scenario as a test to try to shed more light.  Scenario 1 
and scenario 2 are **exactly** the same but I'm setting another NSNumber, 
isFlagged to YES in the setIsEncrypted accessor and it gets set correctly 
without an exception but isEncrypted still causes one.


In SRMainWindowController:
self = (SRMainWindowController *)0x2000df5e0
note = (Note *)0x20027bda0

**** see earlier email for second 
part_______________________________________________

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