Выпуск NSString Причинение EXC_BAD_ACCESS - PullRequest
0 голосов
/ 28 августа 2010

Спасибо за вашу помощь в этом.

Я вытаскиваю NSDictionary из списка в моем основном комплекте и у меня проблемы.Вот код:

- (void)viewDidLoad {

    // Pull in FAQ from Plist
    NSString *strFAQPlist = [[NSBundle mainBundle] pathForResource:@"FAQs" ofType:@"plist"];
    dictFAQList = [[NSDictionary alloc] initWithContentsOfFile: strFAQPlist];

    // Create indexed array to hold the keys
    arrFAQKeys = [[dictFAQList allKeys] retain];

    // Release local vars
    [strFAQPlist release];

    [super viewDidLoad];
}

Я чувствую, что должен выпустить NSString, как я уже сделал.Проблема в том, что когда я это делаю, я получаю ошибку EXC_BAD_ACCESS.Когда я комментирую этот релиз, все работает отлично.Может кто-нибудь объяснить мне, почему это происходит?

Заранее спасибо!

1 Ответ

3 голосов
/ 28 августа 2010

pathForResource возвращает автоматически освобожденный NSString.

Разблокировать вызов только в том случае, если вы вызвали метод alloc / init, скопировали метод или сохранили его явно.

Если вы не сделалиt создать объект напрямую (или сохранить его) не освобождая его.

...