Register your product to gain access to bonus material or receive a coupon.
Get Started Fast with Objective-C 2.0 Programming for OS X, iPhone, iPod touch, and iPad
If you want to learn Objective-C 2.0 to write programs for Mac OS X, iPhone, iPad, or iPod touch, you’ve come to the right place! Concise, readable, and friendly, Learning Objective-C 2.0 is the perfect beginner’s guide to the latest version of Objective-C.
Longtime Mac OS X and iPhone developer Robert Clair covers everything from the absolute basics to Objective-C 2.0’s newest innovations. Clair begins with a practical refresher on C and object-oriented programming and walks you through creating your first Objective-C program with Xcode. Next, you’ll master each core language feature, from objects and classes to messaging, frameworks, and protocols. Every concept is illustrated with simple examples, and many chapters contain hands-on practice exercises.
Throughout, Learning Objective-C 2.0 focuses on the features, concepts, and techniques that matter most day to day. The result is an outstanding first book for everyone who wants to begin programming for iPhone, iPod touch, iPad, or Mac OS X.
COVERAGE INCLUDES
Hands-On Objective-C 2.0: Blocks
Download the sample pages (includes Chapter 16 and Index)
Preface xxiii
Acknowledgments xxxi
About the Author xxxiii
Part I: Introduction to Objective-C 1
Chapter 1: C, The Foundation of Objective-C 3
The Structure of a C Program 4
Variables 8
Operators 16
Expressions and Statements 21
Program Flow 22
Preprocessor 31
printf 33
Using gcc and gdb 35
Summary 37
Exercises 37
Chapter 2: More About C Variables 41
Memory Layout of an Objective-C Program 41
Automatic Variables 42
External Variables 43
Declaration Keywords 44
Scope 47
Dynamic Allocation 49
Summary 51
Exercises 52
Chapter 3: An Introduction to Object-Oriented Programming 55
Object-Oriented Programming 55
An Introduction to Objective-C 58
Objective-C Additions 66
Summary 71
Chapter 4: Your First Objective-C Program 73
Building with Xcode 73
Objective-C Program Structure 76
An Object-Oriented Hello World 79
HelloObjectiveC.m 86
Summary 88
Exercises 88
Part II: Language Basics 91
Chapter 5: Messaging 93
Methods 93
Messaging 96
Messaging Details 98
Under the Hood 106
Message Forwarding 108
Efficiency 109
Introspection and Other Runtime Fun 111
Summary 112
Exercises 113
Chapter 6: Classes and Objects 115
Defining a Class 115
Subclassing a Class 119
Creating Objects 126
Destroying Objects 135
Copying Objects 136
Summary 141
Exercises 141
Chapter 7: The Class Object 143
Class Objects 143
Other Class Methods 147
Mimicking Class Variables 151
Summary 157
Exercises 157
Chapter 8: Frameworks 159
What Is a Framework? 159
Cocoa Frameworks 161
AppKit 162
Core Foundation 163
Core Graphics 166
Core Animation 167
Other Apple-Supplied Frameworks 167
Third-Party Frameworks 168
Under the Hood 168
Summary 170
Chapter 9: Common Foundation Classes 171
Immutable and Mutable Classes 171
Class Clusters 172
NSString 173
Collection Classes 177
NSNumber 183
NSNull 184
NSData 185
NSURL 186
Structures 187
Summary 188
Exercises 189
Chapter 10: Control Structures in Objective-C 191
if Statements 191
for Statements and Implicit Loops 195
while Statements and NSEnumerator 196
Fast Enumeration 199
An Example Using Fast Enumeration 201
Exceptions 205
Summary 210
Exercises 211
Chapter 11: Categories, Extensions, and Security 213
Categories 213
Extensions 218
Instance Variable Scope (Access Control) 220
Access Control for Methods 221
Namespaces 221
Security 222
Calling C Functions from Objective-C 224
Summary 226
Exercises 226
Chapter 12: Properties 229
Accessing Instance Variables Outside of an Object (Don’t Do It) 230
Declaring and Implementing Accessors 231
Accessors Using Properties 233
The @property Statement 236
More About @dynamic 238
Properties and Memory Management 240
Subclassing and Properties 240
Hidden Setters for readonly Properties 242
Properties as Documentation 242
Dot Syntax 243
Summary 246
Exercises 247
Chapter 13: Protocols 249
Protocols 249
Using Protocols 250
TablePrinter Example 253
Protocol Objects and Testing for Conformance 260
Informal Protocols 261
Summary 262
Exercises 263
Part III: Advanced Concepts 265
Chapter 14: Reference Counting 267
The Problem 268
Reference Counting 269
Receiving Objects 271
Ownership 273
dealloc 274
Returning Objects 276
retainCount 281
Multithreading 282
When Retain Counts Go Bad 283
Retain Cycles 285
The Final Goodbye: When Programs Terminate 288
Summary 288
Exercises 289
Chapter 15: Garbage Collection 291
Garbage Collection: The Theory 291
Garbage Collection: The Practice 293
Using Garbage Collection 294
Finalizers 296
malloc and Garbage Collection 297
Core Foundation Objects and Garbage Collection 298
Some Bumps in the Road 299
Garbage Collection Pro and Con 303
Summary 305
Exercises 305
Chapter 16: Blocks 309
Function Pointers 310
The Trouble with Function Pointers 314
NSInvocation 315
Blocks 317
Some Philosophical Reservations 331
Summary 332
Exercises 332
Part IV: Appendices 335
Appendix A: Reserved Words and Compiler Directives 337
Appendix B: Toll-Free Bridged Classes 339
Appendix C: 32- and 64-Bit 341
Kernel and User Programs in 64-Bit 342
Coding Differences for 64-Bit Programs 342
Performance 342
Compiling for 64-Bit 343
More Information 343
Appendix D: Runtimes, Old and New 345
Synthesized Instance Variables 345
The Fragile Base Class Problem—Solved 347
Appendix E: Resources for Objective-C 349
Apple Resources 349
Internet Resources 350
Groups 350
Books 350
Index 351