2010-07-17 2 views
0

CoreString NSManagedObject 하위 클래스 인 TextNarration에 NSString, textURI 유형의 속성이 있습니다. 그 클래스는 NSCoding 프로토콜의 메소드를 구현 : initWithCoder와 encodeWithCoder이 방법 : 나는 새로운 인스턴스를 만들 때Objective-C NSString 변환 가능한 속성 메모리 누수

- (id) initWithCoder: (NSCoder *)coder 
{ 
    if (self = [super init]) 
    { 
     self.textURI = [coder decodeObjectForKey:@"textURI"]; 
    } 
    return self; 
} 

- (void) encodeWithCoder: (NSCoder *)coder 
{ 
    [coder encodeObject:textURI forKey:@"textURI"]; 

} 

내가 같은 것을 할 :

TextNarration * textNarr = [[TextNarration alloc] init]; 
NSString * tURI = [[NSString alloc] initWithString:[dictionaryAction objectForKey:@"narrationURI"]]; 
//NSString * tURI = [[NSString alloc] initWithString:@"aspa"]; 
textNarr.textURI = tURI; 
[action_collected addObject:textNarr]; 
[tURI release]; 
[textNarr release]; 

action_collected 내가 갈거야있는 NSArray입니다 내 모델 엔티티에 변형 가능한 속성으로 넣고 [dictionaryAction objectForKey:@"narrationURI"]은 다른 컨텍스트에서 이전에 자동으로 재생 된 NSString입니다. 어떻게 그 문자열에 메모리 누수가 발생합니까? 악기를 보면이 클래스가 NSManagedObject의 서브 클래스가 아닌는 오토 릴리즈 문자열이 initWithString에서 retain를 수신 (그리고 encodeWithCoder 두 번이라고합니다)

답변

0

대답은 간단 것으로 나타나고 따라서는 출시 적절한 할당 해제의 방법이 필요 속성. 시간에 눈치 채지 못한 나를 위해 서투른.