чтение из списка вопросов - PullRequest
0 голосов
/ 05 августа 2011

У меня есть plist, который является массивом, имя файла называется startups.plist.Я попытался прочитать его в массив с помощью следующего кода:

NSString *path = [[NSBundle mainBundle] pathForResource:@"startups" ofType:@"plist"];
NSMutableArray * wordList = [[NSMutableArray alloc] initWithContentsOfFile:path];

Однако wordList здесь всегда равен 0.Печатный путь при тестировании на устройстве, и он дает мне:

/var/mobile/Applications/CCBF94D9-389C-4D63-B023-F39653FDCEF4/My.app/startups.plist

Вот как выглядит структура plist:

enter image description here

размермассив равен 0. Что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 05 августа 2011

initWithContentsOfFile: не открывает файл plist. Вот образец:

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];
NSLog(@"%@",[temp objectForKey:@"Root"]);
1 голос
/ 05 августа 2011

Вы должны использовать NSDictionary, так как ваш plist - это словарь, в котором есть ключ Root, который является массивом.

NSString *path = [[NSBundle mainBundle] pathForResource:@"startups" ofType:@"plist"];
NSMutableDictionary * dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];

NSMutableArray *wordList = (NSMutableArray *)[dict objectForKey:@"Root"];

Я не уверен, что приведу к NSMutableArray. Может быть, вы должны сделать

NSMutableArray *wordList = [NSMutableArray arrayWithArray:(NSArray*)[dict objectForKey:@"Root"]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...