Re: Sending a msg. to a class
Re: Sending a msg. to a class
- Subject: Re: Sending a msg. to a class
- From: Glen Simmons <email@hidden>
- Date: Thu, 25 Oct 2007 14:54:42 -0500
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];
Glen
_______________________________________________
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