Сбои на этой линии - PullRequest
       15

Сбои на этой линии

0 голосов
/ 22 апреля 2011
NSArray *listItems = [temp componentsSeparatedByString:@","];

Может кто-нибудь сказать, пожалуйста, почему?

temp - это строка NSString

Вот весь код

- (NSString *)getStreetAddress
{
    NSString* temp = [addressArray objectAtIndex:0];
    if (temp != nil) {
        NSArray *listItems = [temp componentsSeparatedByString:@","];
        temp = [listItems objectAtIndex:0];
   }
    return temp;
}

EXC_BAD_ACCESS - ошибка

1 Ответ

2 голосов
/ 22 апреля 2011

Если выполнение попадает в указанную вами строку, то наиболее вероятной проблемой является то, что первый элемент в addressArray был ненадлежащим образом освобожден, оставаясь при этом частью массива. Поскольку массив не проверяет правильность содержащегося в нем объекта, он возвращает указатель на свободную память. Когда вы пытаетесь получить доступ к этой памяти, она падает. Вы можете попробовать запустить с NSZombiesEnabled = YES в среде. Если я прав, вы получите сообщение об ошибке, записанное на консоль.

...