У меня проблема с управлением памятью при добавлении объектов в NSMutableArray
.Странно то, что все хорошо работает для первых 8 объектов, которые я добавляю, но при добавлении 9-го приложения происходит сбой при извлечении этого объекта.
UploadStatus *status = [[UploadStatus alloc] initWithStatus:[NSString stringWithFormat:@"%@: %d", NSLocalizedString(@"uploadPictureSucceeded", @""), pic_id]
andImageInProgress:nil
imageForSuccess:nil
imageForFailed:nil];
[self.delegate notify:status];
[status release];
Это делается в нескольких местах с разными текстами.Но этот объект содержит мой статус, который я отображаю в UITableView
.
. В методе делегата notify
я добавляю объект UploadStatus
к NSMutableArray
и перезагружаю UITableView
, которыйпоказывает объекты внутри этого массива.
Первые 8 раз, когда я добавляю объект UploadStatus
в массив и перезагружаю таблицу, он отображается правильно.Но в 9-й раз я получаю сообщение об ошибке [CFString retain]: сообщение отправлено освобожденному экземпляру 0x5c655c0 .Эта ошибка возникает при перезагрузке таблицы в методе cellForRowAtIndexPath
.
Странно то, что всегда показывает, что объекты внутри NSMutableArray
находятся вне области видимости, как на этом снимке экрана:
Тем не менее, если я возьму предмет, преобразую его в класс UploadStatus
и получу от него status
, все пройдет гладко (для первых 8 объектов).
Кто-нибудь знает, почему происходит ошибка после добавления 9-го UploadStatus
объекта в NSMutableArray
?
Большое спасибо за вашу помощь!