4 머릿말
목차
1장 Xcode에 대하여
2장 OS X 프로그래밍의 시작
3장 OS X의 다양한 뷰 오브젝트
4장 컨트롤러와 화면 구성
5장 스토리보드와 컨트롤러
6장 OS X 자료 관리
7장 콘테이너 뷰
8장 NSTableView
9장 주요 추가 기능
285
251
227
189
143
99
73
35
15
5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10장 다양한 Xcode의 Kit
11장 iOS 프로그래밍의 시작
12장 제약 조건과 자동 레이아웃
13장 다양한 컨트롤러
14장 iOS 자료 관리
15장 ARKit
335. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
379. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
415. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
463. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
483. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 Xcode에 대하여
1절 Xcode 시작하기 최근 작업한 프로젝트다시 열기
스위프트 시험용 놀이터
기존 프로젝트복사하기
새로운 프로젝트만들기
iOS용*어플리케이션
macOS, OS X용어플리케이션
* iOS용 어플리케이션에는 위의 오른쪽 그림처럼 다양한 형식의 형판(template)를 제공한다. 교재에서는 우선
Xcode와 친숙해지기 위해 OS X(macOS)용의 Cocoa App 제작을 먼저 알아보도록 한다.
1장 Xcode에 대하여
Xcode에 대하여 7
새로운 프로젝트이름 지정
사용언어 선택Objective C 또는 Swift
•Product Name(프로젝트 이름)
개발 환경 폴더, 실행 패키지(application), 실행 파일 이름을 결정
•Organization Name(개발 조직 이름)
개발 조직을 대표할 수 있는 이름
•Organization Identifier(개발 조직 식별자)
개발 조직을 시별할 수 있는 도메인 이름을 역순으로 표기 예) iconer.co.kr → kr.co.iconer
•Language(사용 언어)
프로젝트에서 사용할 언어 선택, Swift 또는 Objective C
•Document Extension(개발 환경 확장)
스토리보드(Storyboard) : 화면 디자인으로 인터페이스 빌더(Interface Builder)를 사용할 경우
문서 기반(Document-Based) 어플리케이션 : 문서 기반 다중 윈도우 어플리케이션을 개발할 경우
코어 데이터(Core Data) : 스키마를 지원하는 코어 데이터를 사용할 경우
단위 시험(Unit Tests) : 단위 시험을 위한 추가 모듈 생성
개발 환경 확장을 위한옵션 설정
개발 조직이름 및 식별자
8 Xcode에 대하여
2절 Xcode 화면 익히기
Navigator내비게이터
Workbench*작업대
Standard Editor표준 편집기**
Utilities유틸리티
Library라이브러리
Debug > Console콘솔
Debug > Variables변수 모니터
Assistant Editor보조 편집기**
* Workbench(작업대)는 프로젝트 내비게이터에서 스토리보드(storyboard) 파일을 선택했을 때만 나타난다.
** Xcode의 표준 편집기 또는 보조 편집기 상에 소스코드가 표시된 경우 Option 키를 누르고 있으면 커서는 물음
표로 변경된다. 이때 마우스로 클릭을 하면 도움말이 팝오버(5장 스토리보드) 형태로 표시된다.
if([info draggingSourceOperationMask] == NSDragOperationCopy) {?도움말Option
클릭
Xcode에 대하여 9
내비게이터, 디버그, 유틸리티/라이브러리패널 보이기/감추기
표준 편집기/보조 편집기 선택버전 편집기* 관리
* 이 교재에서는 버전 편집기 기능을 사용하지 않는다. 디버그 영역에서 변수 모니터/콘솔 화면 켜기/끄기콘솔 화면 지우기
✖
?
또한 소스코드 편집시 유틸리티 패널 >
도움말(Help)에는 현재 커서가 위치한 구
문을 위한 도움말 항목이 표시된다. 표시
되는 내용은 왼쪽의 Option 버튼에 의해
나타나는 내용과 동일하다. 자주 사용하는 기능이므로 꼭 숙지가 필요하다. 가장 하단에 Open in Developer
Documentation 항목을 클릭하면 개발자 문서 창을 열어 연관된 내용을 찾아볼 수 있다.
10 Xcode에 대하여
내비게이터
표준 편집기유틸리티
변수 모니터라이브러리
보조 편집기
콘솔
Project Source Control
Symbol Find Issue Test Debug Break- point
Report
File Help IdentityAttri-butes Size
Connect-ions Bindings
View Effects
FileTemplate
Code Snippet
Object Library
Media Library
•Project(프로젝트)
현재 프로젝트를 구성하는 파일들을 트리(tree) 구조로 나열하여 편집기에 띄울 수 있다.
•Issue(이슈, 문제)
프로젝트를 로딩, 컴파일, 수행하면서 발생된 문제들을 나열하고 자세히 볼 수 있다.
•Debug(디버그)
프로젝트가 수행되면서 사용하는 CPU, 메모리, 전력, 디스크, 네트워크 자원에 대해 이력 확인
•Breakpoint(정지점)
프로그래머가 지정한 정지점에서 수행이 일시 중지되고 관련 변수와 상태를 모니터링
?
{ }!
Xcode X에서는 라이브러리 패널이 사라지고 필요할 때마다View > Libraries > Show Library (단축키 ⇧ L) 기능으로열어서 사용한다. 미디어는 View > Libraries > Show Media Library (단축키 ⇧ M) 기능을 사용한다.
Xcode에 대하여 11
3절 Xcode 보조 편집기
이제 Cocoa App 형식의 Objective C 언어를 사용하는 첫 프로젝트를 열고 보조 편집기에 대해 알아본다. 사실
Xcode를 사용할 때 첫 번째 혼란을 유발하는 부분이 편하게 사용할 수 있는 보조 편집기(assistant editor)이다.
AppDelegate.h/m
ViewController.h/m
main.m
Main.storyboard
Project P-001 화면 왼쪽 상단에 있는 내비게이터에는 프로젝트가 사용하는 파일이
나열되어 있다. main.m과 Main.storyboard 파일을 제외하면 헤더
*.h와 모듈 *.m 파일 형식으로 서로 쌍을 맺고 있다. Xcode에서는 이
런 쌍을 상대편(counterparts)이라고 한다.
먼저 내비게이터에서 AppDelegate.h 파일을 선택하여 표준 편집기
(standard editor)에 열어준 후에 다음 아이콘을 눌러 보조 편집기를
열어준다.
관련메뉴
Counterparts
P-001 AppDelegate.h No SelectionP-001
AppDelegate.m AppDelegate()
표준 편집기
보조 편집기
선택한 파일의 이전또는 이후 파일로 이동
프로젝트/폴더 선택한 파일과 커서의 선택 영역
선택한 파일의 상대편파일 표시
Manual : 선택한 파일과 관련된 패키지나 파일 나열
Counterparts : 표준 편집기 파일의 상대편 파일
Superclasses : 슈퍼 클래스 파일들
Subclasses : 서브 클래스 파일들
Siblings : 형제 클래스 파일들
Extensions : 확장 파일들
Categories : 연관된 카테고리 파일들
Protocols : 연관된 프로토콜 파일들
*.h 또는 *.m 선택시
*.storyboard 선택시
Manual
Automatic : 표준 편집기 파일에 따라 자동 선택
Top Level Objects : 프로젝트의 최상위 클래스
Show Issue
Jump To Definition
Show Last Change For Line
...
...
12 Xcode에 대하여
AppDelegate.m AppDelegate()
※ 보조 편집기에서 수동(manual)으로 선택할 수 있는 다양한 파일들
프로젝트에서 사용하는 일반적인 파일을 열었을 때 보조 편집기를 수동 모드로 놓으면 다음과 같이 프로젝트를 구
성하는 파일을 직접 선택하여 열 수 있다.
Manual
Manual P-001 P-001
Products
AppDelegate.h
AppDelegate.m
ViewController.h
ViewController.m
Assets.xcassets
Main.storyboard
Info.plist
main.m
P_001.entitlements
그러나 경우에 따라서는 시스템에서 제공하는 Foundation, AppKit, Cocoa 등의 헤더 파일을 보고 싶을 때가 있다.
메뉴의 Superclasses를 통해 보는 것은 한계가 있다. 이런 경우 소스 코드에서 열고자 하는 클래스 이름이나 소스코
드 파일 이름 위에서 오른쪽 버튼을 눌러 Jump To Definition(정의 부분으로 이동) 기능을 선택한다.
#import <Cocoa/Cocoa.h>
@interface ViewController : NSViewController
@end
#import <Foundation/Foundation.h>#import <AppKit/AppKit.h>#import <CoreData/CoreData.h>
Cocoa/Cocoa.h
Cocoa.h 파일에 커서를 두고 오른쪽 버튼(Ctrl+클릭)을 눌러 확장 메뉴를 열어준다.
메뉴에서 Jump To Definition을선택하여 코드의 정의 파일을 연다.
Cocoa.h 파일은 놀라울 정도로 단촐하다. 단지 세 개의 헤더 파일만 임포트한다. Foundation은 지난 교재에서 알아보았고 이번 교재에서는 AppKit과 CoreData에 대해 알아본다.
Ctrl+클릭
AppKit
AppKit.h
Xcode에 대하여 13
왼쪽과 같이 Cocoa.h 파일(시스템 소스 파일)이 열린 상태에서 편집기를 수동(manual) 모드로 변경하면 지금까지
는 보지 못한 다양한 라이브러리와 프레임워크, 또 그 내부에 포함된 헤더 파일을 손 쉽게 열어볼 수 있다. 이러한
라이브러리는 시스템 소스 파일이 수동 상태로 열려야만 볼 수 있다.
AppDelegate.m AppDelegate()Manual
Manual tvOS 11
AppKitDefines.h
AppKitErrors.h
iOS 11
macOS 11
watchOS 11
Frameworks
usr/include
AppKitScripting
AppleScriptKit
AppleScriptObjC
...
...
이런 방법으로 시스템 소스 파일을 Xcode에서 손쉽게 살펴볼 수 있다. 시
스템 파일은 시스템 권한에 의해 사용자가 수정할 수 없으므로 실수로 원
치 않는 변경에 대해 걱정할 필요는 없다. 보조 편집기의 UI 디자인은 대단
히 편리한 듯 보이지만 답답한 부분도 상당히 많다.
Xcode에서 관련된 파일을 찾는 또 다른 방법으로 File > Open Quickly...
가 있다. 이 메뉴 기능를 실행하면 다음과 같은 검색창이 나오고 입력한 키
워드를 포함하는 Xcode 내부의 모든 파일을 빠르게 검색해준다.
FileXcode
Add Files to "P-001"...
Open
Open Recent
New
Open Quickly...
...
Edit View
Open Quickly...
stdlib
h
h
stdlib.hmacOS 10.14
_stdlib.hmacOS 10.14 > xlocale
⇩