누출 장비로 누출로부터 내 앱을 정리하려고합니다. XML 파서 (TBXML)에서 누수가 나타납니다.자동 반복 문자열이있는 메모리 누출 iphone
@interface GraphPoint : NSObject {
NSString* x;
NSString* y;
}
@property (nonatomic, copy) NSString* x;
@property (nonatomic, copy) NSString* y;
@end
@implementation GraphPoint
@synthesize x, y;
... some calculations
- (void) dealloc
{
[x release];
[y release];
[super dealloc];
}
@end
파서에서 :
... // 따라 요소를 발견
NSString *str;
GraphPoint *aPoint = [[GraphPoint alloc] init];
TBXMLElement *item = [TBXML childElementNamed:kX_Item parentElement:pntItem];
str = [TBXML textForElement:item];
aPoint.x = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
item = [TBXML childElementNamed:kY_Item parentElement:pntItem];
str = [TBXML textForElement:item];
aPoint.y = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
[points addObject:aPoint];
[aPoint release];
다음
내가 구문 분석에 만들려고하는 클래스입니다
누출 기기는 자동 반복 문자열을 제공하는 TBXML의 textForElement 함수에서 누수를 보여줍니다.
+ (NSString*) textForElement:(TBXMLElement*)aXMLElement {
if (nil == aXMLElement->text) return @"";
return [NSString stringWithCString:&aXMLElement->text[0] encoding:NSUTF8StringEncoding];
}
우리는 때로는 수백 또는 수천 개의 포인트에 대해 이야기하기 때문에 이러한 누출은 엄청난 것이됩니다. 자동 검색 문자열이 누수를 생성하는 이유를 이해할 수 없습니까?
의견이 있으십니까?
감사
감사합니다. 당신 말이 맞았습니다. 누설은 다른 위치에있었습니다. 배열은 포인트 배열을 할당 해제하지 않았습니다. –