componentJoinedByString дает мне EXC_BAD_ACCESS - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть NSMutableArray, который я пытаюсь преобразовать в строку.
Объявление моего NSMutableArray ...

    NSMutableArray *listData;  

А потом внутри метода ...

NSString *foo = [listData componentsJoinedByString:@"|"];  
NSLog(@"%@",foo);  

Кажется, что бы я ни пытался, я продолжаю получать EXC_BAD_ACCESS.
Чтобы убедиться, что каждый элемент в моем массиве был строкой NSString, я также попробовал это ...

NSMutableArray *mArray = [[NSMutableArray alloc] init];  
for (id ln in listData) {  
    NSString *boo = [NSString stringWithFormat: @"%@",ln];  
    [mArray addObject:boo];  
}  
NSString *foo = [mArray componentsJoinedByString:@"|"];  
NSLog(@"%@",foo);  

Я могу манипулировать моим NSMutableArray, добавляя / удаляя объекты тем же методом или другими методами внутри моего класса. Но когда я пытаюсь "componentsJoinedByString", появляется ошибка. Кто-нибудь есть какой-либо совет или другой способ, которым я могу объединить этот массив в одну строку NSString?

1 Ответ

1 голос
/ 30 ноября 2010

В указанном вами коде никогда не будет NSMutableArray для listData.В какой-то момент в вашем коде вам нужно будет создать его и предположительно заполнить его.

Редактировать Хорошо, поэтому вы можете столкнуться с проблемами управления памятью, поэтому давайте немного проясним:

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

Чтобы установить listData, вы можете просто использовать

self.listData = [listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]; 

или

[self setListData:[listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]];

, если вы предпочитаете.

...