으앍 - 예전부터 늘 부딪혀왔던 문제를 오늘에서야 명확히 정의내리고 싶어서 뒤적뒤적 구글링을 했다.
항상 appdelegate 에서의 시작이 꼬였는데,
바로 window variable서였다.
사실은 이 기본이 되는 문제를 이해하지 못했기 때문에 다른 곳에서도 많이 오류를 범했었더랬지.

1. @synthesize window = _window
변수를 property 로 선언하고 @synthesize 를 구현해서 getter/setter 가 생성하면 외부에서 변수명만으로 값에 접근할 수 있다. 그런데 여기서!! window = _window 라고 별칭을 지어 사용을 하더라.
처음엔 변수명 있는데 이걸 왜 굳이 꼭 붙여서 사용해야 하나 싶었다.

2. [window makeKeyAndVisible];
1번처럼 선언하고 위와 같은 코드를 생성하면 fail!!!!!
why!!!!!!!!!!!!!
왜냐하면 window라는 인스턴스 변수는 존재하지 않는다고 인식하기 때문!!
window=_window 라고 선언해두면
_window 가 인스턴스 변수로 사용되고
window 변수를 private 으로 간주해서 subclass 에서의 접근이 불가능하게 되는 것.
window에 직접 접근하기 위해서는 접근자 메소드 self. 를 사용해서 => self.window 를 사용해야 한다.

3. [_window makeKeyAndVisible];
_window 변수는 접근 할 수 있다.

4. [self.window makeKeyAndVisible]; 
접근자 메소드를 사용해서 이 문장도 avaliable 하다.

@property @synthesize 기능은 참 헷갈리는구나 - 매번 정리해도 까먹고 또 까먹고
맨날 먹기만 하니 이렇게 살이... 읭?
일단 정리해두었으니 다음번엔 다른 기능을 또 추가해볼까낫?

+ Recent posts