Develop
2013.04.23 17:44
[ios] 코코아 프레임워크(Cocoa Framework) 기본적인 내용~
조회 수 27896 댓글 0
코코아 프레임워크 기본적인 내용~
- 인터페이스 빌더를 사용해 윈도우나 버튼 같은 사용자 인터페이스 객체를 만들고 편집하며 파일에 저장하는 작업을 한다.
- nib 파일에 객체를 저장할 때, 아카이브(archive) 한다는 표현을 사용하고, nib 파일에서 객체를 로딩할 때, 언아카이브(unarchive)한다는 표현을 사용한단다. 걍 세이브 / 로딩이라고 불러도 무관할까?
- 인스턴스 변수(C++에서는 멤버 변수라 불림)중 다른 객체를 가리키는 것을 아웃렛(outlet)이라 호칭하고, 메서드중 사용자 인터페이스 객체가 호출하는 메서드를 액션(action)이라 호칭한다.
- 인스턴스 변수와 메서드의 이름은 소문자로 시작한다. 클래스의 이름은 대문자로 시작.(앞 장에서 설명됐음)
- 인터페이스 빌더에서 객체를 인스턴스 변수에 연결하는 것을 "객체의 아웃렛을 정한다"라고 말한다. (다른 객체를 가리키는 인스턴수 변수를 아웃렛이라 호칭하므로, 배출구의 언어적 의미에 부합하여 생각하면 연상하기 좋다)
- 인터페이스 빌더에서 객체의 아웃렛을 정하기 위해서, 대상을 알고자하는 객체(Src)에서 컨트롤키를 누른채 드래그하여 대상 객체(Dest)로 드래그한다.
- 자바처럼 Objective-C는 단일 상속만 허용한다.
- Objective-C의 타입
> id : 타입과 관계없이 객체를 가리킴
> BOOL: char 와 형식은 같지만 불리언 값으로 사용됨 (1바이트라는 의미일까?)
>> YES: 1
>> NO: 0
> IBOulet: 무시해도 되는 매크로. 인터페이스 빌더에서 아웃렛으로 사용되는 인스턴스 변수를 지시하는 매크로.
> IBAction: void와 동일하며 역시 인터페이스 빌더에서 사용.
> nil: NULL과 같은 의미이나, 객체를 가리키는 포인터로 NULL 대신 nil을 사용한다. (내 기억엔 Objective-C에서 모든 객체는 NSObject에서 상속되어야하니, NSObject 에서 파생되지 않은 것 즉, 객체가 아닌것은 NULL 을 사용하면 될 듯)
- #import는 C 전처리기 #include와 유사하지만 파일을 한 번만 인클루드한다.
- 클래스 선언 블럭은 @interface 로 시작해서 @end 로 끝난다. 클래스의 구현(정의) 블럭은 @implementation 로 시작해서 @end 로 끝난다.
- Xcode 에서 헤더인 .h 와 소스 .m 파일을 토글하는 핫키는 Cmd + Opt(옵션 키) + ↑ 이다.
- Xcode 에서 메서드, 클래스, 혹은 함수에 대한 레퍼런스를 원한다면, 그 이름 위에서 Opt + 마우스 더블 클릭 하라. 메서드, 클래스, 혹은 함수에 대한 정의로 점프하려한다면, 그 이름 위에서 Cmd + 마우스 더블 클릭 하라.
- 이벤트 루프에 대한 개념을 파악할 것! (윈도우의 메시지 펌핑의 개념과 유사) 이벤트들을 처리하기 위해
> 메인 이벤트 루프가 이벤트 대기열에서 이벤트를 가져와
> 뷰에 있는 (버튼과 같은) 이벤트 코드가 실행되고
> 사용자가 작성한 객체의 코드가 실행되고
> 필요에 의해 뷰가 다시 그려지고
> 다시 1번으로 루핑
[출처] http://jedigames.co.kr/10041760284
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
707 | Develop | [android] [번역] 안드로이드 Android Cloud to Device Messaging(C2DM) | hooni | 2013.04.23 | 20634 |
706 | PPT | [ppt] Equation Solving 발표 자료 (@PWE랩 톡데이 2011.07.26) | hooni | 2013.04.23 | 24976 |
705 | PPT | [doc] 발표 자료 ㅎㅎtalk4neo | hooni | 2013.04.23 | 21284 |
704 | Develop | [android] 자동차 리모컨 소스코드 | hooni | 2013.04.23 | 17082 |
703 | Develop | [js] 간단한 게임 프로토타입 (HTML5 와는 무관) | hooni | 2013.04.23 | 15270 |
702 | Develop | [js] 수학 공식을 제공하는 Math 객체 | hooni | 2013.04.23 | 15526 |
701 | Develop | [ios] 참고할만한 좋은 예제 소스.. | hooni | 2013.04.23 | 27533 |
700 | System/OS | [doc] 코코아 프로그래밍 for MACOS 관련 내 분량.. | hooni | 2013.04.23 | 21146 |
» | Develop | [ios] 코코아 프레임워크(Cocoa Framework) 기본적인 내용~ | hooni | 2013.04.23 | 27896 |
698 | PPT | [ajax] 크로스 도메인(Cross Domain) 이슈 해결 방안 | hooni | 2013.04.23 | 22254 |
697 | Develop | [java] Interface 와 abstract | hooni | 2013.04.23 | 8818 |
696 | Develop | [spring] 스프링 IoC/DI | hooni | 2013.04.23 | 11526 |