您應該使用initWithContentsOfFile:
方法的NSDictionary
實例,而不是NSArray
。 下面是示例:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"species_names" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
NSArray *array = [NSArray arrayWithArray:[dict objectForKey:@"Root"]];
或者這樣:
NSString *errorDesc = nil;
NSPropertyListFormat format;
NSString *path = [[NSBundle mainBundle] pathForResource:@"startups" ofType:@"plist"];
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:path];
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
propertyListFromData:plistXML
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&errorDesc];
NSArray *array = [NSArray arrayWithArray:[temp objectForKey:@"Root"]];
編輯
您可以使用NSArray
initWithContentsOfFile:
方法用的NSArray
writeToFile:atomically:
方法創建的文件。與writeToFile:atomically:
創建plist中有這樣stucture:
<plist version="1.0">
<array>
...Content...
</array>
</plist>
而且plist中XCode中創造了這個stucture:
<plist version="1.0">
<dict>
...Content...
</dict>
</plist>
這就是爲什麼的NSArray
dosnt工作initWithContentsOfFile:
方法。
這讓我的軌道上;謝謝。 – RonC