Re: isKindofClass with NSData and NSKeyUnarchiver
Re: isKindofClass with NSData and NSKeyUnarchiver
- Subject: Re: isKindofClass with NSData and NSKeyUnarchiver
- From: Uli Kusterer <email@hidden>
- Date: Fri, 28 May 2010 15:08:31 +0200
On May 28, 2010, at 2:25 AM, Philip Vallone 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?
Haven't used GameKit yet, but programs rarely need to send *raw* data. What they usually need to send is some higher-level concept, in your case that could be a "game command". So what you'd usually do is create some NSObject subclass that encapsulates the general API of a "command". You'd in turn create separate subclasses for the individual commands. NSArchiver already knows how to recreate that object, so you'd then just call an -apply method the base class declares but the subclasses implement, and you'd have everything working automatically.
The subclass would then take care of unarchiving the expected image resp. string and do with it whatever needs to be done (e.g. update the player avatar with that image, or display the given message from the other user, or apply the movements of a remote user to the local game state.
(Of course, there are security/robustness considerations with any network communication to avoid trickery, or just keep cheaters from pretending their player had moved by 6 miles in a split-second and thus wasn't shot, but that's not part of this discussion)
-- Uli Kusterer
"The Witnesses of TeachText are everywhere..."
_______________________________________________
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