Re: Sending a msg. to a class
Re: Sending a msg. to a class
- Subject: Re: Sending a msg. to a class
- From: "Shawn Erickson" <email@hidden>
- Date: Thu, 25 Oct 2007 13:52:23 -0700
On 10/25/07, Glen Simmons <email@hidden> wrote:
> On Oct 25, 2007, at 2:35 PM, z wrote:
>
> >
> > I'll appreciate someone to help me understand the problem and
> > suggest solution.
> > I'm trying to send a msg. to Pawn1 thru Pawn16 classes, but it
> > doesn't work from inside the loop.
> > Thanks.
> >
> > - (IBAction)resetAll: (id)sender {
> >
> > // [toPawn1 showYourself]; //--- This works fine.
> > // .......
> > // [toPawn16 showYourself];
> >
> > / but the following generates a warning: 'NSMutableString' may not
> > respond to '-showYourself'
> >
> > for (i = 1; i <= 16; ++i) {
> > NSMutableString *str = [NSMutableString stringWithFormat: @"toPawn
> > %i", i];
> > [ [str className] showYourself];
> > [str release];
> > }
> > }
>
>
> 1. You're not sending the showYourself method to the class, but to
> the object that is returned from the -className message, which is an
> NSString instance. That's why you're getting the warning. To get a
> class object from an NSString, you need to use NSClassFromString
> function.
> 2. You shouldn't release str, since you didn't alloc, retain or copy
> it. See the docs on memory management.
>
> NSString* className = [NSString stringWithFormat:@"toPawn%i", i];
> Class theClass = NSClassFromString(className);
> [theClass showYourself];
However it looks like showYourself is an instance method give what
little information has been posted so far... so I don't think the
above would do what he wants in the end.
-Shawn
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden