Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: null selector




On Sep 14, 2005, at 4:48 AM, Keith Alperin wrote:

Greetings Cocoa-Devs!

I'm trying to implement a callback using an NSInvocation. However, when i call invoke, i get: "<NSInvalidArgumentException> *** - [MyTestApp methodSignatureForSelector:]: null selector".

Here is some test code that I am using:

- (void)awakeFromNib {
    SEL *handlerSelector = @selector(someMethod: otherArg:);

The value @selector returns is not a pointer.

NSMethodSignature *signature = [self methodSignatureForSelector: handlerSelector];
NSInvocation *handler = [NSInvocation invocationWithMethodSignature: signature];
[handler setTarget:self];
[handler retain];
int *someArg = 1;
int *otherArg = 2;
[handler setArgument:&someArg atIndex:2];
[handler setArgument:&otherArg atIndex:3];

Here you're passing int pointers to a method that expects normal ints. Removing the pointer aspect of int *someArg and int *otherArg should fix that.


[handler invoke];

You need to do setSelector: on handler as well before you invoke it. Both that setting and the method signature are absolute requirements when using NSInvocation.


}

- (void)someMethod:(int)someArg otherArg:(int)otherArg {
    NSLog("keyCode=%d",someArg);
    NSLog("modifierFlags=%d",otherArg);
}

the "someMethod" method is declared in the header file. The error occurs when calling [handler invoke].

Does anyone out there in cocoa land see the problem? This feels like a rookie mistake, but as a cocoa rookie, I can't really tell what that is.

Many thanks,
Keith R. Alperin
kalperin mac com

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden


_______________________________________________ Do not post admin requests to the list. They will be ignored. Cocoa-dev mailing list (email@hidden) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/email@hidden

This email sent to email@hidden
References: 
 >null selector (From: Keith Alperin <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.