메모리 관리 문제를 검색하려고 많은 심의와 약간의 좌절감을 느낀 후에 일부 연구를 수행 한 후 마침내 ARC로 변경하는 데 굴복했습니다. 그리고 그것은 비교적 고통 스러웠습니다. 그러나 새로운 문제는 내 UIViewControllers와 관련이 있었고 Pre-arc 그들은 모두 광고로 작동했습니다. 스택에 밀어 넣었습니다. 스택에 나타나서 dealloc 메서드가 호출되어 모두가 행복해졌습니다. ARC로 전환하면 절대 dealloc이 호출되지 않습니다. 그것은 불행한 일입니다. 그래서이 문제로 몇 가지 조사를했는데, 제가하고 및/또는 .firstly UIViewController 및 ARC
을하고 있지 않다 무엇인지 목록을 보자, 내가 스택에 밀어 오전보기는 명시 적으로 강력한 선언하지 않습니다.하위 클래스는 상위 클래스의 보유 국지적 대리인 unsafe_unretained이지만 염기를 덮는 심지어 부모, 기쁨에 위임 설정 주석.
오프 .Turned NSzombies은 분명히 그이
if (_friendsListVC == nil)
{
_friendsListVC = [[FriendsListViewController alloc] initWithNibName:nil bundle:nil];
_friendsListVC.delegate = self;
}
[self.navigationController pushViewController:_friendsListVC animated:YES];
(_friendsListVC에서, Memory not released in ios view hierarchy에 대답 브래드은 두가지를 따라, ARC에 곁에 물건을 일으킬 코드
내 코드를 변경 .I가능합니다 멤버 변수입니다. 다시이
FriendsListViewController *fVC = [[FriendsListViewController alloc] initWithNibName:nil bundle:nil];
//fVC.delegate = self;
[self.navigationController pushViewController:fVC animated:YES];
기쁨에, 사람의 상단에서의 dealloc 중단 점 적중 결코 극복하고, 일이 내가 밀어 내 응용 프로그램에서 의견을 많이 팝업, 그래서 이것은 단지 더 많은 메모리 문제가 발생할 것입니다 나는 희망에 따라 수정하기 위해 ARC로 바꿨다 ...
또한이보기에는 몇 가지 코드 블록이 있지만 다른 것들도있다. 그러나 내가 읽는 자기도 사용하지 않는다. 약한 심판은 코드 블록에 관해서입니다.
나는 엉망이되어, 누가 ARC가하고 있는지에 관해 나를 설명 할 수 있습니까? 또는 ARC를 사용하는 것에 대해 내가 싫어하는 것은 무엇입니까? 나중에 ARC의 뷰 계층 구조로 밀어 넣기를 원하는 모든 뷰는 인스턴스 변수가 아니어야합니까?
미리 감사드립니다.
당신은 nszobie를 사용할 수 있습니까? –