역자 서문 ... 3 저자 서문 ... 6 CHAPTER 01 객체지향 개발 1-1 객체의 개념 ... 32 1-2 모듈과 객체 ... 43 CHAPTER 02 OBJECTIVE-C 프로그램 2-1 객체와 메시지 ... 50 2-2 클래스 정의 ... 55 2-3 컴파일 ... 64 2-4 프로그램 개발 방법 ... 68 CHAPTER 03 상속과 클래스 3-1 상속의 개념 ... 78 3-2 상속을 사용한 클래스 정의 ... 81 3-3 상속을 사용한 프로그램 예제 ... 89 3-4 상속과 메소드 호출 ... 94 3-5 메소드를 정의할 때의 주의사항 ... 99 CHAPTER 04 객체 타입과 동적 결합 4-1 동적 결합 ... 104 4-2 클래스를 타입으로 사용하기 ... 109 4-3 타입 선언을 활용한 개발 방식 ... 119 4-4 인스턴스 변수의 정보 은닉 ... 127 4-5 클래스 객체 ... 134 CHAPTER 05 레퍼런스 카운트를 이용한 메모리 관리 방식 5-1 동적 메모리 관리 ... 146 5-2 Objective-C의 동적인 객체 관리 ... 149 5-3 인스턴스의 자동 해제 ... 156 5-4 오너쉽 정책 ... 160 5-5 분수 전자 계산기의 예 ... 170 CHAPTER 06 가비지 컬렉션 6-1 가비지 컬렉션 ... 186 6-2 가비지 컬렉션의 자세한 기능 ... 197 6-3 메모리 관리 방식의 비교 ... 211 CHAPTER 7 NSObject 클래스와 런타임 시스템 7-1 NSObject 클래스 ... 218 7-2 메시지 송신의 구조 ... 223 7-3 Objective-C와 Cocoa 환경 ... 242 7-4 64비트 모델로 이행하기 ... 247 CHAPTER 08 주요 FOUNDATION 프레임워크 클래스 8-1 객체의 변경 가능성 ... 258 8-2 문자열 클래스 ... 262 8-3 데이터 클래스 ... 275 8-4 배열 클래스 ... 281 8-5 사전 클래스 ... 297 8-6 약한 참조를 사용하는 컬렉션 클래스 ... 304 8-7 수에 대한 래퍼 클래스 ... 310 CHAPTER 09 카테고리 9-1 카테고리 선언과 정의 ... 316 9-2 기존 클래스에 카테고리 추가 ... 326 CHAPTER 10 추상 클래스와 클래스 클러스터 10-1 추상 클래스 ... 334 10-2 클래스 클러스터 ... 344 10-3 클래스 클러스터의 서브 클래스를 만드는 방법 ... 350 CHAPTER 11 프로토콜 11-1 프로토콜 개념 ... 360 11-2 Objective-C의 프로토콜 선언 ... 363 11-3 비공식 프로토콜 ... 382 11-4 고속 열거 프로토콜과 열거자 ... 386 CHAPTER 12 디클레어드 프로퍼티와 접근자 12-1 프로퍼티란? ... 400 12-2 디클레어드 프로퍼티 ... 403 12-3 도트 연산자로 프로퍼티로에 접근하기 ... 415 CHAPTER 13 객체의 복사와 보존 13-1 존 ... 424 13-2 객체의 복사 ... 427 13-3 아카이브 ... 435 13-4 프로퍼티 리스트 ... 442 CHAPTER 14 메시지 송신 패턴 14-1 델리게이트의 개념 ... 450 14-2 노티피케이션 ... 454 14-3 메시지 포워딩 ... 462 14-4 리스폰더 체인 ... 470 14-5 취소 기능 ... 474 14-6 메소드의 동적 결합 ... 477 CHAPTER 15 애플리케이션 구조 15-1 애플리케이션 래퍼 ... 484 15-2 애플리케이션과 실행 루프 ... 490 15-3 모듈의 동적 로딩 ... 495 15-4 유저 디폴트 ... 499 15-5 애플리케이션의 로컬라이즈 ... 507 CHAPTER 16 예제 : 간단한 이미지 뷰어 16-1 Application 프레임워크와 Interface Builder ... 514 16-2 프로젝트 ... 515 16-3 예제 프로그램의 설명 ... 519 16-4 애플리케이션 래퍼의 구조 ... 542 CHAPTER 17 예외와 에러 17-1 예외란? ... 554 17-2 예외 처리 ... 556 17-3 예외 발생과 전파 ... 563 17-4 어썰션 ... 572 17-5 에러 처리 ... 575 17-6 에러 리스폰더 체인 ... 582 CHAPTER 18 스레드 18-1 멀티 스레드 프로그램 ... 590 18-2 스레드 제어 클래스 NSThread ... 594 18-3 상호 배제 ... 597 18-4 예제 : 식사하는 철학자 문제 ... 604 CHAPTER 19 분산 객체 19-1 커넥션을 사용한 통신 ... 616 19-2 스레드 간의 커넥션 ... 626 19-3 프로세스 간의 커넥션 ... 630 19-4 예제: 스레드 간의 커넥션 샘플 ... 633 CHAPTER 20 키-밸류 코딩 20-1 키-밸류 코딩 ... 656 20-2 프로퍼티 접근 ... 660 20-3 일대다 관계 접근 ... 672 20-4 KVC 컴플라이언스 ... 679 20-5 키-밸류 감시 ... 682 20-6 Cocoa 바인딩 ... 694 Appendix A Foundation 프레임워크 ... 714 B 코딩 지침 ... 733 찾아보기 ... 745