如何以编程方式查找plist的根元素是什么

问题描述 投票:0回答:4

如何以编程方式找出plist的根元素是什么,即它是数组还是字典?

iphone plist
4个回答
2
投票

+[NSPropertyListSerialization propertyListFromData:…]加载plist,然后检查生成的对象的-class


2
投票

试试以下内容:

NSData *plistData;  
NSString *error;  
NSPropertyListFormat format;  
id plist;  

NSString *localizedPath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"plist"];  
plistData = [NSData dataWithContentsOfFile:localizedPath];   

plist = [NSPropertyListSerialization propertyListFromData:plistData mutabilityOption:NSPropertyListImmutable format:&format errorDescription:&error];
if([plist isKindOfClass:[NSDictionary class]]){
     //do some ...
}
if([plist isKindOfClass:[NSArray class]]){
     //do some ...
}

来自Apple的Additional reading


0
投票

这是核心基金会的方式:

if (CFGetTypeID((CFPropertyListRef)myPropertyList) == CFDictionaryGetTypeID()) {
    // its a dictionary
}

0
投票

您不应该使用类方法。使用NSObject的isKindOfClass :(或isMemberOfClass :)来测试对象的类是[NSArray类]还是[NSDictionary类]。

见:+[NSObject class]

© www.soinside.com 2019 - 2024. All rights reserved.