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
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 mails | Author | Date |
|---|---|---|
| Jon Gordon | Jul 8, 17:02 | |
| Ron Lue-Sang | Jul 8, 17:44 | |
| Jon Gordon | Jul 8, 17:58 |






Cocoa mail archive

