UITableViewController Zombies On Scroll - PullRequest
       18

UITableViewController Zombies On Scroll

0 голосов
/ 03 февраля 2012

Счастливая пятница.Интересное время отладки проблемы зомби.У меня есть UITableView, который получает свой источник данных от NSMutableArray, загруженного Word объектами.(См. Класс ниже).Когда приложение загружается, все хорошо - первые 8 или 9 слов отображаются в табличном представлении, как и ожидалось.Однако, когда я прокручиваю, я получаю зомби в моих Word объектах, что подтверждается выводом отладчика "" в качестве значения для переменных переменных экземпляра класса Word.(Смотрите скриншот).Это приводит к сбою.

Screenshot showing zombies

TableSearch[12440:207] *** -[CFString respondsToSelector:]: message sent to deallocated instance 0x6b1fe70

Вот класс Word

//Word Class

#import "Word.h"

@implementation Word

@synthesize word;
@synthesize definition;

+ (id)wordWith:(NSString *)word Definition:(NSString *)definition
{

Word *newWord = [[[self alloc] init] autorelease];

    newWord.word = word;
    newWord.definition = definition;

   return newWord;

 }


 - (void)dealloc
 {
   [word release];
   [definition release];
   [super dealloc];
 }

 @end

Я уверен, что это что-то глупое, но я не могу понять, гдеЯ ошибся.

Я запустил «Анализ» на приборах, и о проблемах не сообщалось.После сбоя я запустил «malloc_history 12440 0x6b1fe70» и посмотрел на вывод, но не знал, что искать, кроме имени класса объектов, имеющих зомби, которых я не видел.

Любая помощь в отслеживании этого с благодарностью.

Спасибо!

1 Ответ

1 голос
/ 03 февраля 2012

Определены ли свойства "word" и "Definition" вашего класса Word как "retain"?Например,

@property (nonatomic, retain) NSString *word;
@property (nonatomic, retain) NSString *definition;

Если вы написали их как:

@property (nonatomic, assign) NSString *word;

или просто

@property (nonatomic) NSString *word;

Тогда это будет причиной вашего сбоя.

...