책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 애플/아이폰/안드로이드 프로그래밍
· ISBN : 9788993827651
· 쪽수 : 268쪽
· 출판일 : 2013-08-26
책 소개
목차
CHAPTER 1 ARC(자동 레퍼런스 카운팅) 이전의 삶
레퍼런스를 계산하는 메모리 관리 방식의 개요 1
메모리 관리에 대한 좀 더 깊이 있는 탐구 5
생성하는 모든 객체에 대해 소유권을 갖는다 6
“retain”을 이용하여 객체의 소유권을 획득할 수 있다 8
더 이상 필요하지 않으면 소유하고 있는 객체의 소유권을 내주어야 한다 9
alloc, retain, release, dealloc의 구현 15
alloc 메서드16
retain 메서드 18
release 메서드21
dealloc 메서드21
alloc, retain, release, dealloc의 Apple에서의 구현 22
Autorelease 26
자동 변수(Autumatic Variables)27
autorelease 구현하기30
애플의 autorelease 구현 34
요약 37
CHAPTER 2 ARC 규칙
개요 40
레퍼런스 카운팅 기법의 바뀐 점 41
소유권 수식어 41
__strong 소유권 수식어42
__strong 소유권 속성을 갖는 변수에 대입하기 43
강한 참조가 동작하는 방식 44
__weak 소유권 수식어48
순환 참조 49
자기 참조 52
약한 참조는 사라진다54
__unsafe_unretained 소유권 수식어56
__autoreleasing 소유권 수식어 59
컴파일러가 알아서 __autoreleasing을 처리해준다60
결과를 인자로 반환하기 63
__strong과 __weak66
규칙 67
retain, release, retainCount, autorelease는 잊어라 67
NSAllocateObject와 NSDeallocateObject는 잊어라 68
객체 생성에 관련된 메서드 작명 규칙을 따르라 69
dealloc의 명시적 호출을 잊어라 70
NSAutoreleasePool 대신 @autoreleasepool을 사용하라71
Zone(NSZone)을 잊어라 72
객체 형의 변수들은 C 언어의 구조체 또는 공용체의 멤버가 될 수 없다72
프로퍼티 83
Array 84
요약 87
CHAPTER 3 ARC 구현
__strong 소유권 수식어 90
array 메서드 호출91
__weak 소유권 수식어 93
객체가 폐기될 때 밑단 살펴보기 95
새로 생성된 객체를 할당하기 95
즉각적인 객체의 폐기97
오토릴리스 풀에 자동으로 추가하기 98
__autoreleasing 소유권 수식어 103
__unsafe_unretained 소유권 수식어104
레퍼런스 카운트 104
요약107
CHAPTER 4 블록 시작하기
블록 입문서 110
익명 함수(Anonymous functions) 110
변수 111
블록으로 해결 113
블록 리터럴 문법115
블록 타입 변수117
자동 변수 캡처120
__block 지시어 121
캡처된 자동 변수 122
요약124
CHAPTER 5 블록 구현
블록의 내부 125
소스코드 변환하기 126
C++에서 this와 Objective-C에서 self 128
_ _cself 선언하기 129
_ _main_block_impl_0 구조체의 생성자 130
_ _main_block_impl_0 인스턴스 초기화하기 131
_NSConcreteStackBlock 살펴보기 133
자동 변수 캡처하기136
익명 함수 138
쓰기 가능한 변수들140
정적 변수나 전역 변수 141
__block 지시어 143
블록에서 메모리 세그먼트148
NSConcreteGlobalBlock 클래스 객체 형태의 블록 150
힙으로 블록 복사하기 152
자동으로 블록 복사하기 153
수동으로 블록 복사하기 155
블록 여러 번 복사하기 157
__block 변수의 메모리 세그먼트159
__forwarding 162
객체 캡처하기 164
언제 copy 메서드를 호출해야만 할까. 170
__block 변수와 객체 171
블록 순환 참조 175
Copy/Release182
요약184
CHAPTER 6 GCD
GCD 살펴보기 185
멀티 스레드 프로그래밍188
CPU가 응용프로그램을 실행하는 방식 190
멀티 스레드 프로그래밍의 장점과 단점 191
요약193
CHAPTER 7 GCD 기본
디스패치 큐(Dispatch Queues) 195
두 가지 타입의 디스패치 큐 197
시리얼 디스패치 큐 197
콘커런트 디스패치 큐 197
디스패치 큐 얻기199
dispatch_queue_create 199
메인 디스패치 큐/글로벌 디스패치 큐 203
디스패치 큐 제어하기207
dispatch_set_target_queue 207
dispatch_after 208
디스패치 그룹 210
dispatch_barrier_async 214
dispatch_sync 216
dispatch_apply 219
dispatch_suspend/dispatch_resume 221
Dispatch Semaphore 222
dispatch_once 225
Dispatch I/O226
요약228
CHAPTER 8 GCD 구현방식
디스패치 큐 229
커널 수준의 구현 229
GCD 구조 230
글로벌 디스패치 큐와 pthread_workqueue 231
블록 실행하기 233
디스패치 소스 233
디스패치 소스 사용하기 예제236
요약238
APPENDIX A ARC와 블록 그리고 GCD 예제 229
APPENDIX B References 245
리뷰
책속에서
이 책은 iOS와 OS X에 포함된 ARC, 블록, GCD(Grand Central Dispatch)에 관한
것으로 다른 책들과는 다르다. 간단히 말해서 이 책은 다음과 같은 깊이 있는 내용을
담고 있다.
- ARC는 iOS 5와 OS X 라이언에서 새롭게 소개된 메모리 관리 기법이다.
- 블록과 GCD는 주로 멀티스레드 기반 앱을 작성하는 데 사용하며, iOS 4와 OS X 스노레퍼드에서 소개되었다.
이런 새로운 기술들은 iOS 5와 OS X 라이언 개발 환경에서는 필수 사항이다. 얼핏
이해하기 쉬운 것 같아 보이지만, 실제로는 확실하게 자신의 것으로 만들지 못하면
여러 난관에 부딪칠 것이다. 이 책에서는 단지 애플의 레퍼런스 문서를 읽기만 하는
것보다 쉽게 이해할 수 있도록 애플의 소스코드를 기준으로 설명하고 있다.
누구에게 필요한 책인가
- C/C++를 이해하고 있지만 Objective-C가 낯선 개발자
- Objective-C 소스코드가 어떻게 동작하는지 알고 싶은 개발자
- iOS 또는 맥 앱을 개발하면서 좀 더 상위 수준으로 발전하고 싶은 개발자
- 서문 중에서




















