来自plist文件的NSArray或NSDictionary

Jon*_*han 1 objective-c nsdictionary plist nsarray ios

在一个方法中,我需要读取一个NSArrayNSDictionary一个plist文件.

这是我的问题:当我不知道它是否是数组或字典时,如何从文件创建NSArrayOR ?NSDictionaryplist

我知道我可以做:

NSArray *myArray = [NSArray arrayWithContentsOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

要么

NSDictionary *myDico = [NSDictionary dictionaryWithContentsOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

但我不知道filePath是否包含a NSArray或a NSDictionary.我想要像:

id myObject = [... ...WithContentOfFile:filePath];
Run Code Online (Sandbox Code Playgroud)

有人可以帮助我并给我最好的方法吗?

gra*_*ver 6

这是如何做

NSData *data = [NSData dataWithContentsOfFile:filePath];
id obj = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:nil];

if([obj isKindOfClass:[NSDictionary class]]) {
    //cast obj to NSDictionary
}
else if([obj isKindOfClass:[NSArray class]]) {
    //cast obj to NSArray
}
Run Code Online (Sandbox Code Playgroud)