2012-02-03 3 views
0

행복한 금요일. 좀비 문제를 디버깅하는 데 흥미로운 시간을 가졌습니다. 나는 Word 개체로로드 된 NSMutableArray에서 데이터 소스를 가져 오는 UITableView을 가지고 있습니다. (아래 클래스 참조). 앱이로드되면 모두 좋음 - 첫 번째 8 개 또는 9 개 단어가 예상대로 표보기로 표시됩니다. 그러나 스크롤했을 때 Word 클래스 인스턴스 변수 값의 값으로 디버거 출력 "< 좀비 >"에서 알 수 있듯이 내 Word 개체에 좀비가 생깁니다. (스크린 샷 참조). 이로 인해 충돌이 발생합니다. UITableViewController 좀비 On Scroll

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

Screenshot showing zombies

다음은이 바보 같은 일이지만, 내가 잘못 어디로 갔는지 내가 볼 수 없습니다 나는 확신 말씀 클래스

//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

Word 클래스의 "단어"속성과 "정의"속성이 둘 다 "보유"로 정의되어 있습니까? 예 :

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

당신이 그들을 작성한 경우

@property (nonatomic, assign) NSString *word; 

하거나

@property (nonatomic) NSString *word; 

그런 다음 당신의 충돌을 설명한다.

+0

예, 그게 전부입니다. 인스턴스 변수는 다음과 같이 정의됩니다. @property (nonatomic, assign) NSString * word; 감사 – Slinky