1부 언어
1장 개요
___오브젝티브C란
______역사
______현대적인 객체지향 언어
______최고의 컴파일러
______성능
______동적인 실행
______개발자 생산성
___새로운 언어 학습
___용어와 문화적 충격
___어느 쪽이 더 좋은가?
___정리
2장 자바와 C 언어의 주요 차이점
___기본 자료형
___상수
___typedef
___포인터
___구조체
___객체 참조
___배열
___static
___함수
___extern
___전처리기
______#include와 #import
______#define
______#if
___자동 변수 초기화
___레이블: break, continue, goto
___정리
3장 오브젝티브C
___오브젝티브C 클래스 정의
___객체 포인터
___메시지 전송
___메소드 이름 지정
___파라미터와 반환 자료형
___메소드 셀렉터
___인스턴스 변수
______isa
______프로퍼티
______프로퍼티 속성
___프로퍼티 재정의
___프로퍼티 접근
___범위
______클래스 이름 범위
______인스턴스 변수 범위
______메소드 범위
___@class 명령
___self와 super
___클래스 메소드
___객체 인스턴스 생성
______init 메소드 작성
______초기화 메소드 연결
______지정 초기화 메소드
______간편 생성자 메소드
___소멸자
___오브젝티브C에서 제공하지 않는 개념
4장 엑스코드 프로젝트
___프로젝트 다운로드
___프로젝트 생성
___시작하기
___애플리케이션 설계
______사용자 인터페이스 설계
______컨트롤러 추가
______객체 바인딩
______배열 컨트롤러 추가
___비즈니스 로직
___애플리케이션 디버깅
___샌드박스 애플리케이션 작성
___정리
5장 프로토콜과 카테고리
___프로토콜
___비공식 프로토콜
___공식 프로토콜과 비공식 프로토콜의 혼용
___카테고리
______카테고리를 활용한 구성
______메소드 숨기기
______외부 클래스에 기능 추가
______익스텐션
___정리
6장 메시지 전송
___메시지 컴파일
______선언하지 않은 메소드
______모호한 메소드
______메소드 강제 호출
___메소드 전송 코드 직접 작성
______메시지 직접 전송
______지연 메시지
___객체지향적 메소드 호출
___메소드 직접 호출
___가변 인자
___구현하지 않은 메소드의 호출
___정리
7장 nil의 이해
___nil에 메시지 전달
___nil 객체의 반환 값
___nil을 염두에 둔 설계
______프로퍼티 접근자
______부재중 동작
______없음의 일관성
___공짜는 없다
___정리
2부 실전 기술
8장 문자열과 기본 자료형
___기본 자료형의 래핑
______스칼라 자료형 변환
______문자열을 기본 자료형으로 변환
___배열의 래핑
___임의 값의 래핑
___nil의 래핑
___문자열
______객체를 문자열로 변환
______C 문자열
___문자열 포매팅
______NSFormatter
______NSNumberFormatter
______NSDateFormatter
___정리
9장 가비지 컬렉션
___가비지 컬렉션 활성화
___가비지 컬렉션 대응 코딩
___finalize 메소드 작성
___약한 참조 활용
___강한 참조 활용
___가비지 컬렉션 요청
___가비지 컬렉션과 포인터
______쓰기 배리어
______수집 가능한 메모리 할당
______가비지 컬렉션의 주의 사항
___피해야 할 디자인 패턴
___디버깅
___정리
10장 인트로스펙션
___메소드 테스트
___클래스 멤버십 테스트
___키 밸류 코딩
______키 밸류 코딩의 사용
______KVC 호환 클래스 설계
______커스텀 키 밸류
___클래스 조사
___프로토콜 조사
___메소드 조사
___프로퍼티 조사
___인스턴스 변수 조사
___정리
11장 파일
___파일 시스템 API
___파일 시스템 항목 식별
______파일명과 경로명
______작업 디렉토리
______파일 URL
______디렉토리 생성과 삭제
______특별한 디렉토리 찾기
___사용자의 파일 요청
___심볼릭 링크, 하드 링크, 별칭
___디렉토리 내용으로 작업
___파일 속성
___고급 파일 메소드
___NSWorkspace
___임의 파일 접근
___NSFileManager 위임
___기타 API
___정리
12장 직렬화
___아카이빙
______아카이브 유형
______아카이브 코더
______아카이브와 문서
______클래스에 키 아카이브 기능 추가
______클래스에 연속 아카이브 기능 추가
______키 아카이브와 연속 아카이브 모두 지원
______아카이브 이모저모
___오브젝티브C 직렬화
______프로퍼티 리스트
______XML
___객체 복사
___정리
13장 통신
___단일 프로세스 내의 통신
___다른 프로세스와의 통신
______저수준 통신
______고수준 통신
___네트워킹
______네트워크 서비스
______URL 로딩
___정리
14장 예외 처리
___예외의 사용
___자바의 예외 처리와 다른 점
______잡기나 지정하기가 없음
______어떤 객체든 던질 수 있음
______예외 다시 던지기
______예외 처리 순서
______예외 체인
______호출 스택
______성능
______잡을 수 없는 예외
___레거시 예외
___어서션
___예외의 대안
______단순 오류
______POSIX 오류 코드
______코어 파운데이션 오류 코드
______코코아 오류
___오류와 예외의 혼합
___정리
15장 스레드
___스레드 API
___스레드의 시작
___스레드 관리
______스레드 잠재우기
______스레드 프로퍼티
___스레드 특정 값
______우선순위
______스택 크기
______이름
___스레드의 종료
___실행 루프
______실행 루프의 시작
______실행 루프 모드
______실행 루프의 중지
______실행 루프 커스터마이징
___스레드 알림
___스레드 동기화
______@synchronize 지시어
______상호배제 세마포어 객체
______스핀 락
___작업 객체
___타이머
___정리
3부 프로그래밍 패턴
16장 컬렉션 패턴
___불변 컬렉션
___순서 있는 컬렉션
______공통적인 메소드
______NSArray, NSMutableArray
______NSPointerArray
___사전 컬렉션
______공통적인 메소드
______NSDictionary, NSMutableDictionary
______NSMapTable
___Set 컬렉션
______공통적인 메소드
______NSSet, NSMutableSet
______NSCountedSet
______NSIndexSet
______NSHashTable
___컴포지트 패턴 507
___컬렉션 동등성 규약
___컬렉션 비교
___이터레이터 패턴
______고속 열거
______열거자
______컬렉션 객체 접근
______열거에 대한 추가 지원
___컬렉션 정렬
______오브젝티브C 메시지를 사용하는 정렬
______C 함수를 사용하는 정렬
______정렬 설명자
___컬렉션 필터링
___컬렉션 동시성
______컬렉션 복사본 열거
______컬렉션 변경 유예
______스레드 안전성
______가비지 컬렉션과 약한 컬렉션
___정리
17장 위임 패턴
___위임 패턴의 이해
___위임 객체 사용
___위임 메소드
___위임 프로토콜
___위임 패턴 적용
___정리
18장 공급자/구독자 패턴
___알림
___알림 센터
___동기식 알림 게시
___차별화된 관찰자
___관찰자 제거
___알림 큐
______알림 큐잉
______알림 병합
______알림 꺼내기
___분산 알림
______분산 알림 센터
______프로퍼티 리스트 값
______비동기식 알림 통지
______분산 알림 센터 중단
___정리
19장 관찰자 패턴
___키 밸류 관찰
___KVO 등록
___키 밸류 변경 알림 처리
___관찰자 탈퇴
___KVO 호환 클래스
______KVO 알림 수동 발송
______프로퍼티 의존성
______KVO 재정의
___KVO 최적화
___정리
20장 MVC 패턴
___MVC의 이해
______MVC의 변형
______MVC의 이점
___바인딩
___인터페이스 빌더
______NIB 문서
______NIB 문서 창
______객체 프로퍼티
______위치보유자 객체
______연결
______소유자 객체
______커스텀 객체
______객체의 인스턴스화
______NIB 객체 초기화
___뷰
______뷰의 기하학
______커스텀 뷰
___문서 모델
___이벤트와 응답자
______동적 애플리케이션
______이벤트
______이벤트 객체
______키 이벤트
______마우스 이벤트
______응답자 체인
___데이터 모델
______레거시 테이블과 트리 모델
______컬렉션 컨트롤러
______코어 데이터
______커스텀 데이터 모델 객체
___컨트롤러
______커스텀 컨트롤러
______NSController
___틱택토에 관해
______Info.plist
______되돌리기
______자원
______지역화된 자원
___정리
21장 지연 초기화 패턴
___패턴의 구현
___전역 변수의 지연 초기화
___+initialize 클래스 메소드
___정리
22장 팩토리 패턴
___URL 팩토리
___행렬 클래스
______자바 Matrix 팩토리
______오브젝티브C Matrix 클러스터
___정리
23장 싱글톤 패턴
___싱글톤 구현
___지연 싱글톤
___싱글톤 팩토리
___정리
4부 고급 오브젝티브C
24장 메모리 관리
___C 메모리 할당
___오브젝티브C 참조 카운팅
___오토릴리즈 풀
______오토릴리즈 풀의 수명
______반환된 참조
______오토릴리즈된 객체
___메모리 관리 패턴
______새로운 객체 패턴
______오토릴리즈된 객체 패턴
______오토릴리즈된 객체의 반환
______세터 패턴
______init 패턴
______dealloc 패턴
______암묵적으로 보유된 객체
___메모리 관리 환경의 문제
______과다 보유되거나 덜 반환된 객체
______과다 반환되거나 덜 보유된 객체
______조기 반환된 객체
______순환 참조
___오토릴리즈 풀 생성
___메모리 관리와 가비지 컬렉션의 혼합
___정리
25장 C와 오브젝티브C의 혼용
___오브젝티브C에서 C 사용
______오브젝티브C에서 C 함수 호출
______C에서 오브젝티브C 객체 사용
___코어 파운데이션
______무료 브릿지
______C 메모리 관리
___정리
26장 런타임
___프로세스
______환경
______커맨드라인 인자
______프로세스 속성
______버전
___패키지와 번들
___프레임워크
___사용자 기본값
___isa 스위즐링
___64비트 프로그래밍
___정리
___에필로그
1장 개요
___오브젝티브C란
______역사
______현대적인 객체지향 언어
______최고의 컴파일러
______성능
______동적인 실행
______개발자 생산성
___새로운 언어 학습
___용어와 문화적 충격
___어느 쪽이 더 좋은가?
___정리
2장 자바와 C 언어의 주요 차이점
___기본 자료형
___상수
___typedef
___포인터
___구조체
___객체 참조
___배열
___static
___함수
___extern
___전처리기
______#include와 #import
______#define
______#if
___자동 변수 초기화
___레이블: break, continue, goto
___정리
3장 오브젝티브C
___오브젝티브C 클래스 정의
___객체 포인터
___메시지 전송
___메소드 이름 지정
___파라미터와 반환 자료형
___메소드 셀렉터
___인스턴스 변수
______isa
______프로퍼티
______프로퍼티 속성
___프로퍼티 재정의
___프로퍼티 접근
___범위
______클래스 이름 범위
______인스턴스 변수 범위
______메소드 범위
___@class 명령
___self와 super
___클래스 메소드
___객체 인스턴스 생성
______init 메소드 작성
______초기화 메소드 연결
______지정 초기화 메소드
______간편 생성자 메소드
___소멸자
___오브젝티브C에서 제공하지 않는 개념
4장 엑스코드 프로젝트
___프로젝트 다운로드
___프로젝트 생성
___시작하기
___애플리케이션 설계
______사용자 인터페이스 설계
______컨트롤러 추가
______객체 바인딩
______배열 컨트롤러 추가
___비즈니스 로직
___애플리케이션 디버깅
___샌드박스 애플리케이션 작성
___정리
5장 프로토콜과 카테고리
___프로토콜
___비공식 프로토콜
___공식 프로토콜과 비공식 프로토콜의 혼용
___카테고리
______카테고리를 활용한 구성
______메소드 숨기기
______외부 클래스에 기능 추가
______익스텐션
___정리
6장 메시지 전송
___메시지 컴파일
______선언하지 않은 메소드
______모호한 메소드
______메소드 강제 호출
___메소드 전송 코드 직접 작성
______메시지 직접 전송
______지연 메시지
___객체지향적 메소드 호출
___메소드 직접 호출
___가변 인자
___구현하지 않은 메소드의 호출
___정리
7장 nil의 이해
___nil에 메시지 전달
___nil 객체의 반환 값
___nil을 염두에 둔 설계
______프로퍼티 접근자
______부재중 동작
______없음의 일관성
___공짜는 없다
___정리
2부 실전 기술
8장 문자열과 기본 자료형
___기본 자료형의 래핑
______스칼라 자료형 변환
______문자열을 기본 자료형으로 변환
___배열의 래핑
___임의 값의 래핑
___nil의 래핑
___문자열
______객체를 문자열로 변환
______C 문자열
___문자열 포매팅
______NSFormatter
______NSNumberFormatter
______NSDateFormatter
___정리
9장 가비지 컬렉션
___가비지 컬렉션 활성화
___가비지 컬렉션 대응 코딩
___finalize 메소드 작성
___약한 참조 활용
___강한 참조 활용
___가비지 컬렉션 요청
___가비지 컬렉션과 포인터
______쓰기 배리어
______수집 가능한 메모리 할당
______가비지 컬렉션의 주의 사항
___피해야 할 디자인 패턴
___디버깅
___정리
10장 인트로스펙션
___메소드 테스트
___클래스 멤버십 테스트
___키 밸류 코딩
______키 밸류 코딩의 사용
______KVC 호환 클래스 설계
______커스텀 키 밸류
___클래스 조사
___프로토콜 조사
___메소드 조사
___프로퍼티 조사
___인스턴스 변수 조사
___정리
11장 파일
___파일 시스템 API
___파일 시스템 항목 식별
______파일명과 경로명
______작업 디렉토리
______파일 URL
______디렉토리 생성과 삭제
______특별한 디렉토리 찾기
___사용자의 파일 요청
___심볼릭 링크, 하드 링크, 별칭
___디렉토리 내용으로 작업
___파일 속성
___고급 파일 메소드
___NSWorkspace
___임의 파일 접근
___NSFileManager 위임
___기타 API
___정리
12장 직렬화
___아카이빙
______아카이브 유형
______아카이브 코더
______아카이브와 문서
______클래스에 키 아카이브 기능 추가
______클래스에 연속 아카이브 기능 추가
______키 아카이브와 연속 아카이브 모두 지원
______아카이브 이모저모
___오브젝티브C 직렬화
______프로퍼티 리스트
______XML
___객체 복사
___정리
13장 통신
___단일 프로세스 내의 통신
___다른 프로세스와의 통신
______저수준 통신
______고수준 통신
___네트워킹
______네트워크 서비스
______URL 로딩
___정리
14장 예외 처리
___예외의 사용
___자바의 예외 처리와 다른 점
______잡기나 지정하기가 없음
______어떤 객체든 던질 수 있음
______예외 다시 던지기
______예외 처리 순서
______예외 체인
______호출 스택
______성능
______잡을 수 없는 예외
___레거시 예외
___어서션
___예외의 대안
______단순 오류
______POSIX 오류 코드
______코어 파운데이션 오류 코드
______코코아 오류
___오류와 예외의 혼합
___정리
15장 스레드
___스레드 API
___스레드의 시작
___스레드 관리
______스레드 잠재우기
______스레드 프로퍼티
___스레드 특정 값
______우선순위
______스택 크기
______이름
___스레드의 종료
___실행 루프
______실행 루프의 시작
______실행 루프 모드
______실행 루프의 중지
______실행 루프 커스터마이징
___스레드 알림
___스레드 동기화
______@synchronize 지시어
______상호배제 세마포어 객체
______스핀 락
___작업 객체
___타이머
___정리
3부 프로그래밍 패턴
16장 컬렉션 패턴
___불변 컬렉션
___순서 있는 컬렉션
______공통적인 메소드
______NSArray, NSMutableArray
______NSPointerArray
___사전 컬렉션
______공통적인 메소드
______NSDictionary, NSMutableDictionary
______NSMapTable
___Set 컬렉션
______공통적인 메소드
______NSSet, NSMutableSet
______NSCountedSet
______NSIndexSet
______NSHashTable
___컴포지트 패턴 507
___컬렉션 동등성 규약
___컬렉션 비교
___이터레이터 패턴
______고속 열거
______열거자
______컬렉션 객체 접근
______열거에 대한 추가 지원
___컬렉션 정렬
______오브젝티브C 메시지를 사용하는 정렬
______C 함수를 사용하는 정렬
______정렬 설명자
___컬렉션 필터링
___컬렉션 동시성
______컬렉션 복사본 열거
______컬렉션 변경 유예
______스레드 안전성
______가비지 컬렉션과 약한 컬렉션
___정리
17장 위임 패턴
___위임 패턴의 이해
___위임 객체 사용
___위임 메소드
___위임 프로토콜
___위임 패턴 적용
___정리
18장 공급자/구독자 패턴
___알림
___알림 센터
___동기식 알림 게시
___차별화된 관찰자
___관찰자 제거
___알림 큐
______알림 큐잉
______알림 병합
______알림 꺼내기
___분산 알림
______분산 알림 센터
______프로퍼티 리스트 값
______비동기식 알림 통지
______분산 알림 센터 중단
___정리
19장 관찰자 패턴
___키 밸류 관찰
___KVO 등록
___키 밸류 변경 알림 처리
___관찰자 탈퇴
___KVO 호환 클래스
______KVO 알림 수동 발송
______프로퍼티 의존성
______KVO 재정의
___KVO 최적화
___정리
20장 MVC 패턴
___MVC의 이해
______MVC의 변형
______MVC의 이점
___바인딩
___인터페이스 빌더
______NIB 문서
______NIB 문서 창
______객체 프로퍼티
______위치보유자 객체
______연결
______소유자 객체
______커스텀 객체
______객체의 인스턴스화
______NIB 객체 초기화
___뷰
______뷰의 기하학
______커스텀 뷰
___문서 모델
___이벤트와 응답자
______동적 애플리케이션
______이벤트
______이벤트 객체
______키 이벤트
______마우스 이벤트
______응답자 체인
___데이터 모델
______레거시 테이블과 트리 모델
______컬렉션 컨트롤러
______코어 데이터
______커스텀 데이터 모델 객체
___컨트롤러
______커스텀 컨트롤러
______NSController
___틱택토에 관해
______Info.plist
______되돌리기
______자원
______지역화된 자원
___정리
21장 지연 초기화 패턴
___패턴의 구현
___전역 변수의 지연 초기화
___+initialize 클래스 메소드
___정리
22장 팩토리 패턴
___URL 팩토리
___행렬 클래스
______자바 Matrix 팩토리
______오브젝티브C Matrix 클러스터
___정리
23장 싱글톤 패턴
___싱글톤 구현
___지연 싱글톤
___싱글톤 팩토리
___정리
4부 고급 오브젝티브C
24장 메모리 관리
___C 메모리 할당
___오브젝티브C 참조 카운팅
___오토릴리즈 풀
______오토릴리즈 풀의 수명
______반환된 참조
______오토릴리즈된 객체
___메모리 관리 패턴
______새로운 객체 패턴
______오토릴리즈된 객체 패턴
______오토릴리즈된 객체의 반환
______세터 패턴
______init 패턴
______dealloc 패턴
______암묵적으로 보유된 객체
___메모리 관리 환경의 문제
______과다 보유되거나 덜 반환된 객체
______과다 반환되거나 덜 보유된 객체
______조기 반환된 객체
______순환 참조
___오토릴리즈 풀 생성
___메모리 관리와 가비지 컬렉션의 혼합
___정리
25장 C와 오브젝티브C의 혼용
___오브젝티브C에서 C 사용
______오브젝티브C에서 C 함수 호출
______C에서 오브젝티브C 객체 사용
___코어 파운데이션
______무료 브릿지
______C 메모리 관리
___정리
26장 런타임
___프로세스
______환경
______커맨드라인 인자
______프로세스 속성
______버전
___패키지와 번들
___프레임워크
___사용자 기본값
___isa 스위즐링
___64비트 프로그래밍
___정리
___에필로그