Objective-C를 사용하여 iPhone 코드를 작성하는 방법을 배우고 있는데 사용하는 시점에 뷰 컨트롤러를 릴리스해야하는 이유를 잘 모르겠습니다. 내비게이션 제어기가 이미 상세보기 제어기 유지 미리사용중인 뷰에서 메모리 관리
1
A
답변
1
아래의 내용은 다음과 같습니다. 로컬 메모리 관리를 담당하고 API 클래스의 메모리를 관리 할 필요가 없다는 점에 대해 걱정할 필요가 없습니다. 그들은 자신의 기억을 관리합니다. 목표 - C의 메모리 관리와 함께 기억해야 할
어떤 것들은 :
- 코코아 터치 클래스는 당신이 그것을주는 일을 유지하기위한 책임이 있습니다. 보기에 하위보기를 추가 하시겠습니까? 뷰는 자체적으로 뷰를 유지합니다. 보기 컨트롤러를 탐색 컨트롤러로 밀어 넣으시겠습니까? 네비게이션 컨트롤러는 뷰 컨트롤러가 스택에서 튀어 나올 때까지 유지합니다.
- 반대로 alloc, copy, new 및/또는 retain을 호출 할 때마다 해당 릴리스 또는 자동 릴리스가 있어야합니다. 위의 코드에서 alloc을 호출하여 뷰 컨트롤러를 만들었으며 어느 시점에서 해제 할 책임이있는 보유 개수 1을 지정했습니다.
는 점 표기법으로 객체 속성을 사용하여 속성을 복사하거나 (당신이 원하는 일반적으로 무엇을) 속성을 유지하는 경우,이 작업을 수행하지 않습니다
self.property = [[WhateverObject ALLOC] 초기화를 ];
대신
, 이렇게 :
self.property = [[[WhateverObject alloc] init] autorelease;
3
에
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
DetailViewController *detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
[self.navigationController pushViewController:detailViewController animated:YES];
[detailViewController release];
}
덕분에 따라서, 유지 수가 그 시점에서 2이다. 이 릴리즈는 보유 개수를 1로 만들 것입니다.
관련 문제
- 1. 메모리 뷰에서 하위 뷰
- 2. 메모리 관리
- 3. 메모리 관리
- 4. 메모리 관리
- 5. 메모리 관리
- 6. 메모리 관리
- 7. 코코아 터치 - 메모리 관리
- 8. memcache는 사용중인 메모리 양을 알려줄 수 있습니까?
- 9. 포인터의 벡터 할당을 해제했지만 여전히 사용중인 메모리
- 10. iphone 메모리 관리 문제
- 11. 아이폰 메모리 관리
- 12. CGMutablePathRef 메모리 관리
- 13. MPMoviePlayerController 메모리 관리
- 14. hDC의 메모리 관리
- 15. NSThread 및 메모리 관리
- 16. 셀러리 메모리 관리
- 17. COM 메모리 관리
- 18. 리눅스에서 동적 메모리 관리
- 19. objective-c 메모리 관리
- 20. 델리게이트와 함께 메모리 관리?
- 21. removeFromSuperview 및 메모리 관리
- 22. UIPopoverController를 사용한 메모리 관리
- 23. PHP의 메모리 관리
- 24. iphone 메모리 관리
- 25. 체인화 애니메이션과 메모리 관리
- 26. 코코아 터치 : 메모리 관리
- 27. 함수 메모리 관리 C++
- 28. ObjC/iPhone의 메모리 관리
- 29. Delphi 메모리 관리
- 30. iOS/ManagedObjectContext의 메모리 관리