我想通过gamekit找出我通过发送功能发送的数据类型。基本上我将数据存储在CFPropertyListRef中。 dataReceived的类型为NSMutatableData。
- (void) receiveData:(NSMutableData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context {
// Read the bytes in data and perform an application-specific action.
[dataReceived setData:data];
if([dataReceived length]> 0 ) {
CFStringRef errorString;
CFPropertyListRef plist = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)dataReceived, kCFPropertyListMutableContainers, &errorString);
}
我的目标是找出plist是否为NSDictionary类型,因为我想适当地处理这些数据
答案 0 :(得分:2)
您可以使用CFGetTypeID():
if(CFDictionaryGetTypeID() == CFGetTypeID(plist))
// do something
如果您更喜欢Objective-C,请查看NSPropertyListSerialization。
答案 1 :(得分:0)
你可以这样做,但这并不是说你应该 - 一个属性列表可以有一个字典或一个数组作为它的顶级元素。你想要一个特殊的字典?