메모리 관리에있어 기본적인 차이가있는 것 같습니다. 아래 코드는 웹에서 다운로드 한 데이터를 구문 분석하기 위해 내 앱에서 여러 번 호출되는 싱글 톤 내에 있습니다. 내가 다운로드 한 각 기사에 대해 변경 가능한 문자열을 할당 한 다음 구문 분석 톤을 수행 한 다음 파일을 나중에 파일 시스템에 작성하여 나중에 UIWebView에 표시합니다.싱글 톤 속성을 사용하는 iPhone 메모리 관리
하지만이 메서드를 입력 할 때마다 새로운 "articleString"을 할당합니다. 그리고 나는이 문자열을 공개하지 않습니다. 이 누수가 생각하지만 파일을 쓴 후이 메서드의 아래쪽에 릴리스를 추가하면 내 응용 프로그램이이 메서드를 호출 한 다음에 충돌합니다. 다른 NSMutableString이 호출 될 때 다음 번에 할당되기 때문에 왜 충돌하는지 이해할 수 없습니다.
업데이트 : dealloc 메서드에서 articleString을 해제합니다. 그러나 내가 입력 할 때마다 할당하기 때문에이 방법의 끝에서 공개해야하는 것 같습니다.
@property (nonatomic, retain) NSMutableString *articleString;
아래 parseArticle 방법 articleString 조작 방법의 시리즈를위한 자리이다
UPDATE : 헤더에 다음과 같이 정의된다 articleString.
self.articleString = [[NSMutableString alloc] initWithData:articleData encoding:NSUTF8StringEncoding];
//Parse the article for display
[self parseArticle];
//Write the article string to a file for later display
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"article.html"];
NSLog(@"%@", articleString);
[articleString writeToFile:path atomically:YES];
'@property articleString'에 대한 정의는 무엇입니까? 'parseArticle'의 내용을 게시해야합니다.이 내용에는 약간의 유지/해제 오류가있을 수 있습니다. – Yuji
위의 편집 된 질문보기. 고마워. –