SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This PDF will be accessible from your Account page after purchase and requires PDF reading software, such as Acrobat® Reader®.
The eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Get Started Fast with Objective-C 2.0 Programming for OS X Mountain Lion, iOS 5.1, and Beyond
Fully updated for Xcode 4.4, Learning Objective-C 2.0, Second Edition, is today’s most useful beginner’s guide to Objective-C 2.0. One step at a time, it will help you master the newest version of Objective-C 2.0 and start writing high-quality programs for OS X 10.8 Mountain Lion, iOS 5.1, and all of Apple’s newest computers and devices.
Top OS X and iOS developer Robert Clair first reviews the essential object and C concepts that every Objective-C 2.0 developer needs to know. Next, he introduces the basics of the Objective-C 2.0 language itself, walking through code examples one line at a time and explaining what’s happening behind the scenes.
This revised edition thoroughly introduces Apple’s new Automated Reference Counting (ARC), while also teaching conventional memory-management techniques that remain indispensable. Carefully building on what you’ve already learned, Clair progresses to increasingly sophisticated techniques in areas ranging from frameworks to security. Every topic has been carefully chosen for its value in real-world, day-to-day programming, and many topics are supported by hands-on practice exercises.
Coverage includes
· Reviewing key C techniques and concepts, from program structure and formats to variables and scope
· Understanding how objects and classes are applied in Objective-C 2.0
· Writing your first Objective-C program with Xcode 4.4
· Using messaging to efficiently perform tasks with objects
· Getting started with Apple’s powerful frameworks and foundation classes
· Using Objective-C control structures, including Fast Enumeration and exception handling
· Adding methods to classes without subclassing
· Using declared properties to save time and simplify your code
· Mastering ARC and conventional memory management, and knowing when to use each
· Using Blocks to prepare for concurrency with Apple’s Grand Central Dispatch
· Leveraging Xcode 4.4 improvements to enums and @implementation
Preface xxv
Acknowledgments xxxv
About the Author xxxvii
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 23
Preprocessor 33
Command Line Compiling and Debugging 37
Summary 39
Exercises 39
Chapter 2: More about C Variables 43
Memory Layout of a C Program 43
Automatic Variables 44
External Variables 46
Declaration Keywords 46
Scope 50
Dynamic Allocation 51
Summary 54
Exercises 55
Chapter 3: An Introduction to Object-Oriented Programming 57
Object-Oriented Programming 57
An Introduction to Objective-C 60
Objective-C Additions 68
Summary 74
Chapter 4: Your First Objective-C Program 75
Building with Xcode 75
Objective-C Program Structure 79
An Object-Oriented “Hello World” 83
main.m 90
Summary 92
Exercises 92
Part II: Language Basics 95
Chapter 5: Messaging 97
Methods 97
A Simple Method 97
Methods with Arguments 98
Messaging 100
Messaging Details 103
Under the Hood 111
Message Forwarding 113
Efficiency 114
Introspection and Other Runtime Fun 115
Summary 117
Exercises 117
Chapter 6: Classes and Objects 119
Defining a Class 119
Subclassing a Class 123
Creating Objects 131
Destroying Objects 139
Copying Objects 141
Summary 146
Exercises 146
Chapter 7: The Class Object 149
Class Objects 149
Other Class Methods 153
Mimicking Class Variables 158
Summary 163
Exercises 164
Chapter 8: Frameworks 167
What Is a Framework? 168
Cocoa and Cocoa Touch 169
AppKit 170
UIKit 171
Core Foundation 172
Core Graphics 175
Core Animation 176
Other Apple-Supplied Frameworks 176
Third-Party Frameworks 177
Under the Hood 178
Summary 179
Chapter 9: Common Foundation Classes 181
Immutable and Mutable Classes 181
Class Clusters 182
NSString 183
Collection Classes 188
NSNumber 193
NSNull 195
NSData 196
NSURL 197
Objective-C Literals and Object Subscripting 198
Structures 204
Geometry Structures on iOS 206
Summary 206
Exercises 207
Chapter 10: Control Structures in Objective-C 209
if Statements 209
for Statements and Implicit Loops 213
while Statements and NSEnumerator 215
Fast Enumeration 217
An Example Using Fast Enumeration 220
Exceptions 223
Summary 229
Exercises 230
Chapter 11: Categories, Extensions, and Security 233
Categories 233
Associative References 238
Extensions 240
Instance Variable Scope (Access Control) 242
Hiding Your Instance Variable Declarations 243
Access Control for Methods 246
Namespaces 246
Security 246
Calling C Functions from Objective-C 250
Summary 251
Exercises 251
Chapter 12: Properties 253
Accessing Instance Variables Outside of an Object (Don’t Do It) 254
Declaring and Implementing Accessors 255
Accessors Using Properties 258
Synthesized Instance Variables 260
@synthesize by Default 261
Synthesis Summary 262
Private Properties 263
The @property Statement 263
More about @dynamic 266
Properties without Instance Variables 267
Properties and Memory Management 268
A Look Ahead at Automatic Reference Counting (ARC) 269
Subclassing and Properties 270
Hidden Setters for readonly Properties 271
Properties as Documentation 272
Dot Syntax 272
Summary 276
Exercises 277
Chapter 13: Protocols 279
The Rationale for Protocols 279
Using Protocols 280
TablePrinter 285
FruitBasket 287
main 288
A Problem 289
Implement the Optional Methods 290
Protocol Objects and Testing for Conformance 291
Informal Protocols 291
Summary 292
Exercises 293
Part III: Advanced Concepts 295
Chapter 14: Memory Management Overview 297
The Problem 298
The Solutions: Objective-C Memory Management 299
Onward 300
Chapter 15: Reference Counting 301
Reference Counting Basics 301
Receiving Objects 303
Ownership 305
dealloc 306
Returning Objects 308
retainCount 314
Multithreading 314
When Retain Counts Go Bad 316
Retain Cycles 319
The Final Goodbye: When Programs Terminate 321
Summary 322
Exercises 323
Chapter 16: ARC 325
What ARC Is and Is Not 326
How ARC Works 326
ARC Imposes Some Rules 328
New Variable Qualifiers 332
Properties 336
Retain Cycles 337
ARC and Core Foundation 340
Casting to and from void* 343
ARC and Extra Autorelease Pools 346
ARC and Exceptions 346
Using ARC 347
ARC Uses Runtime Functions 349
More Information 349
Summary 350
Exercises 351
Chapter 17: Blocks 353
Function Pointers 354
NSInvocation 359
Blocks 362
Some Philosophical Reservations 377
Summary 378
Exercises 378
Chapter 18: A Few More Things 381
Enums with a Fixed Underlying Type 381
Forward Declarations of Methods in the @implementation Block Are No Longer Needed 384
Some New Documentation 387
Summary 387
Exercises 387
Part IV: Appendices 389
Appendix A: Reserved Words and Compiler Directives 391
Appendix B: Toll-Free Bridged Classes 393
Appendix C: 32- and 64-Bit 395
Kernel and User Programs in 64-Bit 396
Coding Differences for 64-Bit Programs 396
Performance 396
Compiling for 32-Bit and 64-Bit 397
More Information 398
Appendix D: The Fragile Base Class Problem 399
Appendix E: Resources for Objective-C 401
Apple Resources 401
Internet Resources 402
Groups 402
Books 403
Index 405