周五快乐。有一个有趣的时间调试僵尸问题。我有UITableView
从NSMutableArray
加载Word
个对象获取其数据源。 (见下面的课程)。当应用程序加载时,一切都很好 - 表格视图中的第一个8或9个单词按预期显示。但是当我滚动时,我会在我的Word
对象中获得僵尸,如调试器输出“< Zombie>”中所示。作为Word
类实例变量值的值。 (见截图)。这会导致崩溃。
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”并查看输出但不确定要查找的内容除外 拥有僵尸的对象的类名,我没有看到。
非常感谢任何有助于追踪此问题的帮助。
谢谢!
答案 0 :(得分:1)
Word类的“单词”和“定义”属性是否都定义为“保留”? E.g。
@property (nonatomic, retain) NSString *word;
@property (nonatomic, retain) NSString *definition;
如果你把它们写成:
@property (nonatomic, assign) NSString *word;
或只是
@property (nonatomic) NSString *word;
然后它会解释你的崩溃。