You are not signed in. Sign in.

List Books: Buy books on ListBooks.org

Learning Objective-C 2.0: A Hands-On Guide to Objective-C for Mac and iOS Developers »

Book cover image of Learning Objective-C 2.0: A Hands-On Guide to Objective-C for Mac and iOS Developers by Robert Clair

Authors: Robert Clair
ISBN-13: 9780321711380, ISBN-10: 0321711386
Format: Paperback
Publisher: Addison-Wesley
Date Published: August 2010
Edition: (Non-applicable)

Find Best Prices for This Book »

Author Biography: Robert Clair

Robert Clair has spent more than twenty years writing commercial graphics and CAD software. For the past eight years, he has specialized in Mac OS X and iPhone development. As principal of Chromatic Bytes LLC, he has designed both OS X software (ZeusDraw and Shades) and iPhone programs (ZeusDraw Mobile and Orfeo). He has also consulted on a number of other iPhone and iPad applications.

Book Synopsis

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

  • Understanding methods, messages, and the Objective-C messaging system
  • Defining classes, creating object instances, and using class objects
  • Using categories to extend classes without subclassing
  • Simplifying development with Objective-C 2.0 declared properties
  • Using protocols to emphasize behavior rather than class
  • Working with common Foundation classes for strings, arrays, dictionaries, sets, and number objects
  • Using Objective-C control structures, including Objective-C 2.0’s new fast enumeration construct
  • Understanding application security and hiding the declaration of methods that should stay private
  • Using the new blocks feature provided in Objective-C 2.0

Table of Contents

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

Subjects