Заполните NSArray через NSDictionary, который заполняется через .plist - PullRequest
0 голосов
/ 24 марта 2012

Вот код:

-(void)viewDidLoad {
    [super viewDidLoad];

    //Verb data read, sorted and assigned to a dictionary
    NSBundle *bundle = [NSBundle mainBundle];

    NSString *plistPath = [bundle pathForResource:@"VerbDictionary" ofType:@"plist"];    
    NSDictionary *verbDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

    NSArray *verbs = [verbDictionary allKeys];
    NSArray *vSorted = [verbs sortedArrayUsingSelector:@selector(compare:)];

    NSString *selectedVerb = [vSorted objectAtIndex:0];
    NSArray *vArray = [verbDictionary objectForKey:selectedVerb];
    self.verbArrayData = [[NSArray alloc] initWithArray:vArray];
}

Вот снимок экрана с сообщением об ошибке, которое я получаю:

enter image description here

(из https://plus.google.com/u/0/113629344949177123204/posts/SwHzXL6kvvJ)

self.verbArrayData не заполняется из vArray. self.verbDataArray - это nil, и это не должно быть.

Я пробовал это с нуля, и я сделал этораньше, на самом деле, в прошлом, но через iOS 4 и освобождение / сохранение управления памятью.Это первое приложение iOS 5 ARC, которое я только что запустил.

Есть идеи?

1 Ответ

0 голосов
/ 26 марта 2012

Я понял это ... Но я не уверен, почему это работает.Self.verbArrayData недействителен.Тем не менее, просто verbArrayData работает просто отлично.Итак, я изменил self.verbArrayData = [[NSArray ...] на verbArrayData = [[NSArray ...], и он скомпилирован и работает нормально.Таким образом, self.verbArrayData в данном случае является получателем, а не установщиком;Я думаю.Спасибо - -

...