행복한 금요일. 좀비 문제를 디버깅하는 데 흥미로운 시간을 가졌습니다. 나는 Word
개체로로드 된 NSMutableArray
에서 데이터 소스를 가져 오는 UITableView
을 가지고 있습니다. (아래 클래스 참조). 앱이로드되면 모두 좋음 - 첫 번째 8 개 또는 9 개 단어가 예상대로 표보기로 표시됩니다. 그러나 스크롤했을 때 Word
클래스 인스턴스 변수 값의 값으로 디버거 출력 "< 좀비 >"에서 알 수 있듯이 내 Word
개체에 좀비가 생깁니다. (스크린 샷 참조). 이로 인해 충돌이 발생합니다. UITableViewController 좀비 On Scroll
TableSearch[12440:207] *** -[CFString respondsToSelector:]: message sent to deallocated instance 0x6b1fe70
다음은이 바보 같은 일이지만, 내가 잘못 어디로 갔는지 내가 볼 수 없습니다 나는 확신 말씀 클래스
//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"을 실행하고 출력을 보았지만 보지 못했던 좀비가있는 객체의 클래스 이름 을 제외하고 무엇을 찾아야할지 확실하지 않았습니다.
도움이되는 도움을 주시면 감사하겠습니다.
감사합니다.
예, 그게 전부입니다. 인스턴스 변수는 다음과 같이 정의됩니다. @property (nonatomic, assign) NSString * word; 감사 – Slinky