无论如何要找出与这个变量相关的类?

时间:2009-12-17 17:11:36

标签: objective-c class types plist

我想通过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类型,因为我想适当地处理这些数据

2 个答案:

答案 0 :(得分:2)

您可以使用CFGetTypeID():

if(CFDictionaryGetTypeID() == CFGetTypeID(plist))
  // do something

如果您更喜欢Objective-C,请查看NSPropertyListSerialization

答案 1 :(得分:0)

你可以这样做,但这并不是说你应该 - 一个属性列表可以有一个字典或一个数组作为它的顶级元素。你想要一个特殊的字典?