나는 모든 메모리 문제를 처리하고 메모리 관리를 읽으려고 내 응용 프로그램을 통해 돌아갔다. [object retainCount]를 사용하여 메모리 할당을 추적하기 시작했습니다. 카운트가 정말 이상하다는 사실을 계속 알고 있기 때문에 신뢰할 수 있습니까? 이 점을 염두에 응용 프로그램 대리자를보유 회수가 너무 많은 이유는 무엇입니까? 메모리 관리
베어와 빈 mainViewController 차이는 없습니다 :
사람은 다음을 설명 할 수 없습니다. initWithRootViewController는 올라갈 수를 일으키는 것입니다,하지만 난 하나 ....- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
/* Create the View Controllers */
UIViewController *mainViewControl = [[[MainViewController alloc] init] autorelease];
/* Create the Navigation Controller */
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:mainViewControl] autorelease];
NSLog(@"retain count: %i",[mainViewControl retainCount]);
/* Set the toolbar to purple */
navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
navigationController.navigationBar.tintColor = [UIColor colorWithRed:.6 green:.1 blue:.4 alpha:0.4];
navigationController.navigationBar.translucent = YES;
NSLog(@"retain count: %i",[mainViewControl retainCount]);
navigationController.toolbar.barStyle = UIBarStyleBlackTranslucent;
navigationController.toolbar.tintColor = [UIColor colorWithRed:.6 green:.1 blue:.4 alpha:0.4];
navigationController.toolbar.translucent = YES;
[navigationController setNavigationBarHidden:YES animated:NO];
[navigationController setToolbarHidden:YES animated:NO];
NSLog(@"retain count: %i",[mainViewControl retainCount]);
[window addSubview:[navigationController view]];
NSLog(@"retain count: %i",[mainViewControl retainCount]);
을 추가하는 또 다른 방법이 표시되지 않습니다 그리고 이것은 로그 ~
2011-01-17 19:47:21.278 ANA[5653:207] 3
2011-01-17 19:47:21.282 ANA[5653:207] 4
2011-01-17 19:47:21.286 ANA[5653:207] 7
2011-01-17 19:47:21.287 ANA[5653:207] 12
2011-01-17 19:47:21.301 ANA[5653:207] Load View
I 돈이다 이 속성을 변경하거나 navigationController를 참조하는 것이 보유 횟수를 늘리는 이유인지 이해할 수 없습니다.
나는 자동 반복 기능을 사용하지 않고 수동으로 릴리스했지만 그 결과는 동일합니다. 기본적으로 나는 이해하지 못하고 retainCount 명령이 신뢰할 만한지 궁금합니다. 이해할 수 없으면 다른 곳에서 메모리 문제를 디버깅 할 수 없다고 생각합니다.
가능한 복제본 [할당 또는 보존 된 객체를 몇 번이나 해제합니까?] (http://stackoverflow.com/questions/3730804/how-many-times-do-i-release-an-allocated-or- -retained-object) –
묻는 질문이 다르긴하지만 문제는 두 질문 사이에서 동일합니다. –
잘 될 수 있었고이 문제에 대한 해답을 찾고 있었지만 어떻게 적용되는지를 알기가 어려웠습니다. 질문은 실제로 '나는 [object retainCount]를 신뢰할 수 있습니까?'라는 대답과 그 대답이 너무 좋고 명확하게 '아니오'여야합니다! 틀림없이 나는 너의 연결을 발견하지 않았다. – Ben