Skip navigation.
 
mlDon't Understand KVC Error Using Array Operators
FROM : Jon Gordon
DATE : Tue Jul 08 17:02:05 2008

I can't understand why I'm getting an exception when I try to use the 
array operators.

Here's what I'm trying to do.  One instance variable is a 
NSMutableArray named "contacts".  This array contains instances of 
objects that have a "call" property, which is an NSString.  I have 
another instance variable, also an NSString, named "exCall".  I want 
to find out whether any contact has a call property that equals exCall.

(It's a ham radio logging program.  Yes, I know I'm a nerd, thanks.)

The following method works:

- (BOOL)callInLog
{
    if (!contacts || ![contacts count] ||
        ![self exCall] || ![[self exCall] length])
        return NO;

    NSEnumerator *e = [[self contacts] objectEnumerator];
    QEContact *contact;
    while (nil != (contact = [e nextObject])) {
        if ([[contact call] isEqual:[self exCall]])
            return YES;
    } // while

    return NO;

} // callsignInLog


The following method throws an exception every time:

- (BOOL)callInLog
{
    if (!contacts || ![contacts count] ||
        ![self exCall] || ![[self exCall] length])
        return NO;

    return ([[self valueForKey:@"contacts.@unionOfObjects.call"]
              containsObject:[self exCall]]);
} // callsignInLog


The message on the console is "Exception raised during posting of 
notification.  Ignored.  exception: '[<QELogModel 0x15c3a0> 
valueForUndefinedKey:]: this class is not key value coding-compliant 
for the key contacts.@unionOfObjects.call.'  invoked observer method: 
'*** -[NSTextField textDidEndEditing:]'  observer: 0x17a0a0 
notification name: 'NSTextDidEndEditingNotification'"

Shouldn't the results of the two routines be identical?  If not, why 
not?

(I'm running XCode v. 3.0 on a PPC machine that's running Leopard v. 
10.5.4.  The target SDK is Mac OS X 10.4 (Universal), with all that 
entails, such as no garbage collection or ObjC 2.0.)

Thanks for any help,

   -Jon

Related mailsAuthorDate
mlDon't Understand KVC Error Using Array Operators Jon Gordon Jul 8, 17:02
mlRe: Don't Understand KVC Error Using Array Operators Ron Lue-Sang Jul 8, 17:44
mlRe: Don't Understand KVC Error Using Array Operators Jon Gordon Jul 8, 17:58