Ответ 1
Вам следует использовать метод 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"]];
ИЗМЕНИТЬ
Вы можете использовать initWithContentsOfFile:
метод NSArray
с файлом, созданным с помощью метода writeToFile:atomically:
NSArray
. Plist, созданный с помощью writeToFile:atomically:
, имеет эту структуру:
<plist version="1.0">
<array>
...Content...
</array>
</plist>
И Plist, созданный в XCode, имеет эту структуру:
<plist version="1.0">
<dict>
...Content...
</dict>
</plist>
Вот почему initWithContentsOfFile:
метод NSArray
dosnt работает.