Re: How to avoid warning?
Re: How to avoid warning?
- Subject: Re: How to avoid warning?
- From: Dave <email@hidden>
- Date: Tue, 22 Jan 2013 18:15:27 +0000
On 22 Jan 2013, at 18:07, Keary Suska wrote:
On Jan 22, 2013, at 10:23 AM, Dave wrote:
On 21 Jan 2013, at 18:44, Steve Sisak wrote:
At 6:14 PM +0000 1/21/13, Dave wrote:
if (class_RespondsToSelector(myClass,@selector(initWithManager:)
== NO)
myObj = [[myClass alloc] init];
else
myObj = [[myClass alloc] initWithManager:sel]];
I get a warning on the initWithManager: statement (Obviously),
how to avoid the warning or otherwise fix it?
You could try declaring initWithManager: in a category on the
class visible only to your implementation code. (i.e. at the top
of your .m file)
The class name is passed in as a string and the class is formed
from that, so I can't pre-declare it. Please see my other reply.
If in fact myClass may be any number of classes that may implement
certain methods, the "right" way to do this is using a protocol.
Protocols are designed to fit this purpose. I don't recall,
however, the exact method to hint to the compiler enough to avoid
the warning. Importing the protocol header may be sufficient.
This has to work with classes that exist already as well as classes
that don't. If initWithManager is defined in the class in question
"knows" what it is being called like this, if not then it defaults to
the regular NSObject init.
For instance it could be NSString or NSArray that is the class, in
which case it won't have "initWithManager" so it calls init instead.
All the Best
Dave
_______________________________________________
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