구글링하다가 어떤 사람 댓글을 읽었는데 아 뭔 말인지 모르겄다...

clarity and consistency = 명확성과 일관성을 위해 IBOutlets 는 모두 property 선언할 것을 권장한다.

첨에 뷰 로딩할 때 nib 파일을 setvalue:forkey: 형식으로 불려져서 세팅되는데

property를 retain으로 선언해놨는데 만일 뷰가 unloaded 라면 ... (아 영어와 한글을 같이 쓰는건 참 그렇다 ㅋ )

아직 뷰를 참조하고 있기 때문에 메모리 접근 문제가 생길 수 있음 ...

그래서 viewDidUnload 에 release 해야 한다네 -

(어떤 이의 말에 따르면 mac os x 에서는 멤버 변수가 default 가 no retained 라는데 

ios는 default 가 retained 라서 viewDidUnload 에서 release & set nil을 해줘야 한단다.

그렇게 명확하게 property 선언을 해놓으면 개발자가 헷갈리는 일도 없고 mac os x 와 ios 모두에서 공통적으로 사용(?)할 수 있는건가)

메모리 워닝이 발생하면 viewDidUnload 호출 후에 viewDidLoad 가 다시 호출듯 (정확하진 않음)

카메라 켜다가 자꾸 텍스트 날라가서 왜 그런가 했더니 메모리 워닝 두둥//

viewDidUnload에서  텍스트뷰 release & set nil 을 안했더니 메모리 워닝이 발생해도 텍스트는 남아있는데 왠지 찝찝하다 ㅎ;;

따로 저장해야되는건가 ;


어플을 지웠다가 다시 설치하니까 메모리 워닝 없이 잘 실행됨.

내부적으로 메모리 소모를 최소한으로 하고 워닝 발생 시 대비책을 마련해야겠다

어렵다 어려워 재밌다 재미나 ㅋ 

+ Recent posts