rent-now

Rent More, Save More! Use code: ECRENTAL

5% off 1 book, 7% off 2 books, 10% off 3+ books

9780321711380

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

by
  • ISBN13:

    9780321711380

  • ISBN10:

    0321711386

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2010-07-23
  • Publisher: Addison-Wesley Professional
  • View Upgraded Edition
  • Purchase Benefits
List Price: $39.99

Summary

The perfect beginner's guide to Objective-C 2.0, the essential language for over 1,000,000 Mac OS X, iPhone, and iPod touch developers! bull; bull;Concise, readable, and friendly: designed to get new Objective-C programmers up and running fast! bull;Covers everything readers need to know, from basic Object-Oriented Programming to general C concepts. bull;Walks through code examples one line at a time, and also offers high-level explanations what's happening 'behind the scenes' of Objective-C programs. Long-time OS X and iPhone developer Robert Clair begins with a concise review of the object-oriented and C concepts that all Objective-C developers need to know. Next, he introduces the basics of the Objective-C language, walking through code examples one line at a time, and offering high-level explanations of what's happening 'behind the scenes.' Clair concludes with advanced topics carefully chosen for their real-world value - including detailed coverage of memory management and the differences between 32-bit and 64- bit programs. Throughout, Learning Objective-C 2.0 focuses consistently on the features, concepts, and techniques that matter most in day-to-day programming - not complex 'edge cases' or abstract theory. The result: an outstanding first book for every beginner who wants to program for Apple's fast-growing iPhone and Mac OS X platforms. Note: This will be the entry-level book for Objective-C newcomers. Readers who complete it can move on to Stephen Kochan's highly-regarded Programming in Objective-C 2.0 and then to our more specialized Apple development titles, such as David Chisnall's Cocoa Developer's Handbook, Fritz Anderson Xcode 3.x Unleashed , and Aaron Hillegass's Cocoa Programming for Mac OS X Third Ed

Author Biography

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.

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

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program