Develop
2013.04.23 17:44
[ios] 코코아 프레임워크(Cocoa Framework) 기본적인 내용~
Views 27727 Comment 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
No. | Category | Subject | Author | Date | Views |
---|---|---|---|---|---|
117 | Develop |
[ios] StoryBoard(xib) 없이 프로젝트 만들기
![]() |
hooni | 2015.02.12 | 1165 |
116 | Develop | [ios] 로컬에 있는 html 실행하기 | hooni | 2015.02.10 | 1153 |
115 | System/OS | 콘솔에서 패스워드 걸린 zip 압축하는 명령 | hooni | 2018.03.02 | 1143 |
114 | Develop |
'2014 모바일 개발 트렌드' 발표자료입니다.
![]() |
hooni | 2014.10.02 | 1141 |
113 | System/OS | [mac] 패키지 매니저, MacPort | hooni | 2015.01.03 | 1139 |
112 | Develop |
[c] FSN 온라인 코딩 테스트 (Sorting, Binary Search)
![]() |
hooni | 2015.06.26 | 1134 |
111 | System/OS |
[펌] 마이크로서비스, 모노리포, SRE, ... 덮어놓고 구글 따라하면 안 되는 기술들
![]() |
hooni | 2020.10.15 | 1121 |
110 | Develop |
[ios] Xcode의 디버그 모드에서 콜스택
![]() |
hooni | 2015.01.03 | 1120 |
109 | Etc | EBS [수학영역] 미적분과 통계 기본 - 정규분포의 의미와 특징은? | hooni | 2015.04.20 | 1106 |
108 | Develop | [ios] APNS, Remote Push 수신 시점에서 앱의 3가지 실행 상태 | hooni | 2018.10.19 | 1100 |
107 | Develop |
[ios] Xcode에서 특정 파일만 ARC 따로 설정하는 방법
![]() |
hooni | 2017.03.29 | 1099 |
106 | Develop | [js] 스크롤 이벤트 막기 | hooni | 2015.04.14 | 1095 |