전화 번호부 iPhone 응용 프로그램에서 코드를 정리하고 Instrument의 누수 도구가 NSCFString 객체를 누출한다고보고합니다. 나는있는 NSString 회원과 이름에 대한 관련 속성 지역에 불과, 성이없는 내 응용 프로그램에서 Person 클래스가목표 C NSMutableArrays로 NSCFString 누수
등
내 뷰 컨트롤러가 있습니다 여기에 내가 다음 오전 패턴은 searchBarSearchButtonClicked 이벤트의 SQLite 데이터베이스에서 채워지는 NSMutableArray 속성입니다. 이 NSMutableArray는 내 tableview 컨트롤을 채우는 데 사용될 Person 객체로 채워집니다. 또한 사용자가보기에서 사람을 클릭하면 해당 Person 객체가 Detail보기로 전달되어 이름 이외의 추가 정보를 볼 수 있습니다.
첫 번째 조회를 수행하고 결과를 표시 할 때 메모리 누수가 없습니다.
이제 두 번째 룩업을 수행 할 때 NSMutableArray를 지우고 새 결과 집합을 메모리 누수없이 다시로드하는 것이 이상적입니다.
[self.personList removeAllObjects];
self.personList = [SearchService GetPersonList:searchText];
[list reloadData];
내가 가지고하는 데 사용되는 누수를 제거 왔 removeAllObject를 호출하여 아래 그림과 같이 그럼,이 일을, 나는 나의 personList 재산 removeAllObjects를 호출 한 후 personList있는 NSMutableArray를 다시 채울 수있는 데이터베이스를 호출 Person 오브젝트와 연관되어있다. 그러나, 이제는 개별 Person 객체의 속성에서 남겨진 NSString 객체가 누출되고 있습니다.
이것이 가능합니까?
저는 Instruments 도구에 익숙하지 않지만 NCSFString 누수 중 하나를 드릴 할 때 확장 정보에서 알 수있는 것부터는 스택의 마지막 코드 줄이 종종 @synthesize 코드 줄을 가리키고 있습니다.
@synthesize firstName;
따라서 NSString이 정리되지 않는 이유는 다음과 같습니다. 메모리 누수가 발생하지 않는 더 좋은 방법이 있습니까?
Person 클래스의 코드를 게시 할 수 있다면 상황을 쉽게 진단 할 수 있습니다. – Mark