다음은 NSXMLParser를 사용하여 문자열에서 모든 HTML 태그를 제거하는 데 사용하는 MREntitiesConverter 객체의 @interface입니다. 나는 내 응용 프로그램을 충돌하고있는 할당 해제의 방법이 아니라 내가 확실히 분명히 메모리를 유출하고 방출하지 않고 xmlParser
을 떼면내 응용 프로그램을 중단하지 않고이 NSXMLParser를 어떻게 해제 할 수 있습니까?
@implementation MREntitiesConverter
@synthesize resultString;
- (id)init
{
if([super init]) {
self.resultString = [NSMutableString string];
}
return self;
}
- (NSString*)convertEntitiesInString:(NSString*)s {
xmlStr = [NSString stringWithFormat:@"<data>%@</data>", s];
data = [xmlStr dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
xmlParser = [[NSXMLParser alloc] initWithData:data];
[xmlParser setDelegate:self];
[xmlParser parse];
return [resultString autorelease];
}
- (void)dealloc {
[data release];
//I want to release xmlParser here but it crashes the app
[super dealloc];
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)s {
[self.resultString appendString:s];
}
@end
:
@interface MREntitiesConverter : NSObject {
NSMutableString* resultString;
NSString* xmlStr;
NSData *data;
NSXMLParser* xmlParser;
}
@property (nonatomic, retain) NSMutableString* resultString;
- (NSString*)convertEntitiesInString:(NSString*)s;
@end
는 그리고 이것은 구현입니다.
저는이 악기를 처음 사용하고이 앱을 최적화하려고 노력하고 있습니다. 이 특정 문제에 대해 도움을 줄 수 있다면 내 앱의 다른 메모리 문제를 해결하는 데 도움이 될 것입니다. 좌절 기대에
너의 :) Oisin
오늘 실제로 같은 문제가있었습니다. 이것에 대한 답을보기를 좋아할 것입니다. –