How to send an NSDictionary (or plist file) as NSD

2019-08-24 14:20发布

问题:

I'm trying to use

[currentSession sendDataToAllPeers:data withDataMode:GKSendDataReliable error:nil];

to send an NSDictionary (or a plist file) containing data from 1 device to another, and

- (void)receiveData:(NSData *)data fromPeer:(NSString *)peer inSession:(GKSession *)session context:(void *)context

to receive it. How can I convert to and from NSData for this to happen?

回答1:

You can use the following to transform Plist to NSData:

+ (NSData *)dataWithPropertyList:(id)plist
                          format:(NSPropertyListFormat)format
                         options:(NSPropertyListWriteOptions)opt
                           error:(NSError **)error

And this to transform NSData to Plist:

+ (id)propertyListWithData:(NSData *)data
                   options:(NSPropertyListReadOptions)opt
                    format:(NSPropertyListFormat *)format
                     error:(NSError **)error

of NSPropertyListSerialization class

format could be NSPropertyListBinaryFormat_v1_0 to use lowest byte count