Re: isKindofClass with NSData and NSKeyUnarchiver
Re: isKindofClass with NSData and NSKeyUnarchiver
- Subject: Re: isKindofClass with NSData and NSKeyUnarchiver
- From: Sherm Pendley <email@hidden>
- Date: Fri, 28 May 2010 10:00:11 -0400
On Thu, May 27, 2010 at 8:25 PM, Philip Vallone
<email@hidden> wrote:
>
> This is a relative question, which depends on how the data is coming and going. My question comes from the following situation. Suppose I have a GKSession that is passing information via Bluetooth. The sender can send any type of information (NSString, UIImage etc...). The receiver needs to know how to handle this data. If there is a better way... Then how?
>
> I appreciate the feed back and help,
I would let the sent objects handle the work themselves. A switch or
series of ifs based on class is an OOP anti-pattern. Polymorphism is
often a better alternative, and Objective-C's ability to add a
category to any class makes it easy to implement. So, I would extend
NSString, UIImage, etc. - whatever types can be sent - by adding a new
method "mySuperDuperMethod" (for example).
Then, what you're left with in the receiver class is simply:
if ([obj respondsToSelector(@selector(mySuperDuperMethod))]) {
[obj performSelector:@selector(mySuperDuperMethod)];
}
If the ability of a sent object to implement mySuperDuperMethod is
critical, you could add an else block to log and/or assert any such
failures.
sherm--
--
Cocoa programming in Perl:
http://www.camelbones.org
_______________________________________________
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