Thank you for sticking with this, I did read the link and it explains what I understood the method would do. Just to make sure I've stated my problem correctly here is the process I went through to get working code.
My first attempt was to use the NSNumber object since it seemed an easy thing to use.
BOOL myBool = [[NSNumber initWithInteger:(NSInteger)[myManagedObject valueForKey:@"myKey"]]boolValue];
This crashed. From what I could tell the NSNumber was having problems initializing. So I noticed that I was able to log the value through NSLog and a formatted string. So I tried this
BOOL myBool = [[NSString initWithFormat:@"%@", (NSInteger)[myManagedObject valueForKey:@"myKey"]]boolValue];
This one crashed when the boolValue was run. So with a little more experimentation I came up with this that finally worked.
BOOL myBool = [[NSString initWithFormat:@"%@", (NSInteger)[myManagedObject valueForKey:@"myKey"]]intValue] == 1;
I believe the first try is what you were referring to in your first post. Do I have this correct or have I still missed your point?