Нераспознанный селектор отправлен в экземпляр (SIG_ABRT), добавив NSString в NSArray - PullRequest
0 голосов
/ 23 сентября 2011

Я тут бреду. Итак, у меня есть метод, который просматривает NSMutableArray, который является свойством другого класса. Объекты NSString. В отладчике, который я вижу, написано NSCFString для объекта, который я пытаюсь добавить в массив. Так что я в основном делаю это:

- (NSArray *)GetFileNames {
    NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease];
    for (NSString *str in self.ParentVC.SelectedOptions) {
        [fileNameArray addObject:str];
        NSLog(@"%@", str); // this works fine
    }
    return fileNameArray;
}

И я вызываю эту функцию где-то еще:

    NSArray *fileNameArray = [[NSArray alloc] initWithArray:[self GetFileNames]];

Но по какой-то причине я получаю нераспознанный селектор, отправленный экземпляру, и он останавливается на этой строке. Я делаю что-то неправильно? Любые советы, чтобы попытаться устранить проблему? Я уже проверил self.ParentVC.SelectedOptions, и это показывает мой NSCFString или NSCFStrings, которые я хочу. Что я могу сделать в инструментах для этого? Спасибо.

Ответы [ 2 ]

1 голос
/ 23 сентября 2011

Эта строка:

NSMutableArray *fileNameArray = [[[NSArray alloc] init] autorelease];

Должно быть

NSMutableArray *fileNameArray = [[[NSMutableArray alloc] init] autorelease];

В противном случае вы создаете неизменный массив.

1 голос
/ 23 сентября 2011

Заменить вторую строку на

NSMutableArray *fileNameArray = [[[NSMutableArray alloc] init] autorelease];

Реальный тип объекта - это то, что вы выделяете, а не то, что вы объявляете. В размещенном коде массив не является изменяемым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...