UITableViewController Zombies On Scroll

时间:2012-02-03 14:32:49

标签: objective-c ios uitableview scroll nszombie

周五快乐。有一个有趣的时间调试僵尸问题。我有UITableViewNSMutableArray加载Word个对象获取其数据源。 (见下面的课程)。当应用程序加载时,一切都很好 - 表格视图中的第一个8或9个单词按预期显示。但是当我滚动时,我会在我的Word对象中获得僵尸,如调试器输出“< Zombie>”中所示。作为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 个答案:

答案 0 :(得分:1)

Word类的“单词”和“定义”属性是否都定义为“保留”? E.g。

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

如果你把它们写成:

@property (nonatomic, assign) NSString *word;

或只是

@property (nonatomic) NSString *word;

然后它会解释你的崩溃。