Hello Richard,
checking up on some of the added/changed implemtations in NSObject, I noticed that
GNUstep would behave differently than OPENSTEP 4.2 would in some cases. I don't have
an OS X to verify how it is implemented there though. If OS42 and OS X differ in these
implemetations, then it would be nice to have #define guards OS 4.2 compatibility.
Here is the code I tested:
id anObj = [NSObject new];
NS_DURING
NSLog(@"+instancesRespondToSelector:%@", [NSObject
instancesRespondToSelector:NULL]?@"YES":@"NO");
//R NSLog(@"+instanceMethodForSelector:%lx", [NSObject
instanceMethodForSelector:NULL]);
NSLog(@"+instanceMethodSignatureForSelector:%@", [NSObject
instanceMethodSignatureForSelector:NULL]);
//NI NSLog(@"+descriptionForInstanceMethod:%@", [NSObject
descriptionForInstanceMethod:NULL]);
NSLog(@"-respondsToSelector:%@", [anObj respondsToSelector:NULL]?@"YES":@"NO");
//R NSLog(@"-methodForSelector:%lx", [anObj methodForSelector:NULL]);
NSLog(@"-methodSignatureForSelector:%@", [anObj
methodSignatureForSelector:NULL]);
//NI NSLog(@"-descriptionForMethod:%@", [NSObject descriptionForMethod:NULL]);
//R NSLog(@"-performSelector:%@", [anObj performSelector:NULL]);
//R NSLog(@"-performSelector:withObject:%@", [anObj performSelector:NULL
withObject:nil]);
//R NSLog(@"-performSelector:withObject:withObject:%@", [anObj performSelector:NULL
withObject:nil withObject:nil]);
/*forward:nil: not yet tested*/
/*performv:nil: not yet tested*/
NS_HANDLER
NSLog(@"%@ %@ %@",[localException name],[localException reason],[localException
userInfo]);
NS_ENDHANDLER
the lines noted with //R actually raised. //NI is not implemented.
The output is:
Aug 28 11:02:19 SelectorTest[2144] +instancesRespondToSelector:NO
Aug 28 11:02:19 SelectorTest[2144] +instanceMethodSignatureForSelector:*nil*
Aug 28 11:02:19 SelectorTest[2144] -respondsToSelector:NO
Aug 28 11:02:19 SelectorTest[2144] -methodSignatureForSelector:*nil*
I think it would be very important, that
*respondsToSelctor:NULL/*methodSignatureForSelector:NULL returned NO/nil respectively.
Cheers,
Dave