Develop
2013.04.23 17:44
[ios] 코코아 프레임워크(Cocoa Framework) 기본적인 내용~
조회 수 27727 댓글 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
번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|---|
73 | Develop | [android] 딜레이를 구현하기 위한 꼼수 | hooni | 2016.11.24 | 1090 |
72 | Develop |
[ios] FlckrFeed Example App (Swift)
![]() |
hooni | 2016.11.27 | 1215 |
71 | Develop |
[android] 버전 별 앱 알림 설정으로 이동하는 방법
![]() |
hooni | 2016.11.28 | 2295 |
70 | Develop |
XML, JSON, BSON, MSGPACK 장,단점 비교
![]() |
hooni | 2017.01.11 | 2385 |
69 | Develop |
[ios] 동영상 플레이어 샘플 (for Local File)
![]() |
hooni | 2017.02.07 | 1215 |
68 | Develop |
[ios] 동영상 플레이어 샘플 (for Remote Url)
![]() |
hooni | 2017.02.07 | 1771 |
67 | Develop |
[ios] Facebook Cache 갱신하는 함수
![]() |
hooni | 2017.02.27 | 1333 |
66 | Develop |
[js] Javascript로 만든 포트리스 (2010)
5 ![]() |
hooni | 2017.03.03 | 2831 |
65 | Develop |
[ios] 동영상 플레이어 샘플 (for PIP Player)
![]() |
hooni | 2017.03.15 | 1416 |
64 | Develop |
Mac OS 에 Jenkins 설치하기 (Homebrew)
2 ![]() |
hooni | 2017.03.15 | 8412 |
63 | Develop |
사이버보안실무 수업 메모
![]() |
hooni | 2017.03.23 | 0 |
62 | Develop |
[ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법
![]() |
hooni | 2017.03.29 | 1099 |