Table of Contents

Introduction

Who Should Read This Book

What This Book Covers

Downloading the Sample Files

How This Book Is Organized

Part I: Getting Started with Objective-C

Part II: Working with the Objective-C Basics

Part III: Expanding and Extending Classes

Part IV: Beyond the Basics

Part V: Appendixes

Part I: Getting Started with Objective-C

HOUR 1: Overview of the Developer Program

Introducing Objective-C

Enrolling as an Apple Developer

Choosing Your Program

Selecting Your Membership Category

Registering for Your Apple ID

Setting Up the Development Environment

Talking Xcode

Introducing the Xcode Workspace

Getting Up and Running with Your First Project

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 2: Object-Oriented Programming with Objective-C

Object-Oriented Programming in the Objective-C World

Implementing Object-Oriented Programming

Building Object-Oriented Projects

Looking at the Frameworks

Creating C with Objects

Start Thinking in Objective-C

Understanding Data Abstraction

Considering Classes and Instances

Exploring Encapsulation

Using Accessors to Manage Encapsulation

Managing Inheritance in the Objective-C World

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 3: Using Object-Oriented Features in Objective-C

Communicating to Methods with Messages

Looking at a Simple Message

Declaring a Method

Using Class Methods

Working with id—Strongly and Weakly Typed Variables

Nesting Messages

Looking at Method Signatures and Parameters

Allocating and Initializing Objects

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 4: Using Xcode 5

Getting to Work with Xcode

Keeping Track of Your Source Code

Exploring Source Code Control

Working in a Source Code Repository World

Using Git with Xcode

Using a Remote Repository

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 5: Using Compiler Directives

Exploring Your Projects

Looking at the iOS Project

Looking at the OS X Project

Looking at Both Projects

Working with Compiler Directives

Working with Basic Directives

Looking at Prefix Headers

Looking at Plain C Code in main.m

Investigating Header (.h) Files

Looking Inside Message (.m) Files

Using Objective-C Compiler Directives

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

Part II: Working with the Objective-C Basics

HOUR 6: Exploring Messaging and a Testbed App

Setting Up the Testbed Apps

Adding a Text Field and Connecting It to Your Code

Adding the Text Field

Connecting the Text Field to the Code

Sending a Message to the Text Field

Reviewing the Message Syntax

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 7: Declaring a Class in an Interface File

Letting Xcode Do the Work

Designing Classes

Getting Ready to Create the Class

Exploring Class Hierarchies

Calling Superclass Methods

Introducing Protocols

Declaring Classes

Writing a Basic Class Declaration

Using Forward References

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 8: Declaring Instance Variables in an Interface File

Declaring Instance Variables and Properties

Using the Class

Placing a Class Instance in Context

Choosing the Context

Creating an Instance Variable for CurrencyConverter with id

What Happens When Execution Stops

Dynamic Binding

Creating an Instance Variable for CurrencyConverter with the Class Name

Creating an Instance Variable for CurrencyConverter with a Superclass Name

Managing Instance Variable Visibility

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 9: Declaring Properties in an Interface File

Comparing Interface Variables and Properties

Reviewing Basic Variable Declarations

Creating Declared Properties: The Basics

Dealing with Memory for Objects

Working with Attributes for Declared Properties

Using Declared Properties

Accessing the Property with Message Syntax

Accessing the Property with Dot Syntax

Using Attributes

Accessor Methods

Writability

Setter Semantics

Atomicity

Using Other Attribute Decorators

Implementing Properties

Creating Accessors with @synthesize

Promising Data with @dynamic

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 10: Declaring Methods in an Interface File

Working with Methods in a Class

Reviewing Method Syntax

Distinguishing Between Class and Instance Methods

Exploring the Method Declaration

Writing the Method Declaration

Returning Complex Data Structures from Methods

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 11: Declaring Actions in an Interface File

Introducing Actions

What Actions Can Do for You

Comparing Actions in OS X and iOS

Disconnecting Actions

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 12: Routing Messages with Selectors

Getting Inside Objective-C Messages

Receiver and Selector Objects in Messages

Getting Inside the Objective-C Runtime

Working with SEL and @selector ()

Using performSelector

Creating a Selector with @selector ()

Creating a Selector from a String

Using a Selector

Using NSInvocation

Creating an NSInvocation

Using NSInvocation Properties

Invoking an NSInvocation

Testing Whether an Instance Can Respond to a Selector

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 13: Building on the Foundation

Exploring the Foundation Framework

Foundation Classes

Root Classes

Other Classes

Foundation Paradigms and Policies

Mutability

Class Clusters

Notifications

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 14: Defining a Class in an Implementation File

Working with a New Project

Reconsidering Dynamic Typing

Designing the (Currency) Converter

Creating a New App

Implementing a Method

Expanding the Class with init Methods

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 15: Organizing Data with Collections

Collecting Objects

Getting Familiar with Property Lists

Using Collections in Property Lists

Building Collections from Property Lists at Runtime

Comparing the Collection Classes

Creating a Collection

Using the Common Collection Creation Methods

Using Objective-C Literal Syntax

Reading and Writing Arrays

Reading and Writing Dictionaries

Creating Sets

Enumerating a Collection

Examining NSEnumerator Methods

Creating NSEnumerator Instances for Collections

Testing Membership in a Collection

Accessing an Object in a Collection

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 16: Managing Memory and Runtime Objects

Managing Objects in Memory

Managing Reference Counts Manually

Looking at Memory Management Before ARC

Summarizing Memory Management

Managing Reference Counts with ARC

Using Declared Property Attributes

Variable Qualifiers

Autoreleasing Variables

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

Part III: Expanding and Extending Classes

HOUR 17: Extending a Class with Protocols and Delegates

Exploring the Pros and Cons of Subclassing

Introducing the Example

Working with Protocols

Working with Delegates

Putting Protocols and Delegates Together

Looking Deeper Inside Protocols

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 18: Extending a Class with Categories and Extensions

Comparing Categories and Protocols

Choosing When to Use a Category

Comparing Other Techniques with Categories

Comparing Categories with Subclasses

Modifying a Class Hierarchy

Confining Modifications to Categories

Working with Categories

Using Class Extensions

Working with Informal Protocols

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 19: Using Associative References and Fast Enumeration

Catching Up on Objective-C 2.0 Time-Saving Features

Extending Classes by Adding Instance Variables (Sort of)

Adding an Associative Reference

Getting and Setting an Associative Reference

Removing an Associative Reference for a Key

Removing All Associative References from an Object

Using Fast Enumeration

Using Fast Enumeration

Using Fast Enumeration with an NSEnumerator

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 20: Working with Blocks

Revisiting Blocks

Looking at Callbacks

Considering Callback Routines

Introducing Blocks

Creating a Block as a Block Variable

Using a Block Variable

Exploring Blocks in Cocoa

NSString enumerateLinesUsingBlock:

NSArray enumerateObjectsUsingBlock:

NSSet enumerateObjectsUsingBlock:

Looking Deeper into Cocoa Blocks and Memory

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

Part IV: Beyond the Basics

HOUR 21: Handling Exceptions and Errors

Rethinking Exceptions and Errors

Introducing the Exception and Error Classes

Using Exceptions

Using Errors

Looking Inside NSException

Looking Inside NSError

Identifying an Exception

Throwing an Exception

Catching an Exception

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 22: Grand Central Dispatch: Using Queues and Threading

Getting Started with Concurrency

Looking at Processors Inside Computers

Using Concurrency Without Rewriting User Apps

Using Threads for Concurrency

Introducing Grand Central Dispatch (GCD)

Introducing Queues

Dispatch Queues

Dispatch Sources

Operation Queues

Using Dispatch Queues

Using Global Concurrent Dispatch Queues

Adding a Task to a Global Concurrent Queue

Designing with Queues

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 23: Working with the Debugger

Logging Information

Using Console Logs

Using NSLog

Enhancing NSLog

Using Smart Breakpoints

Enhancing Breakpoints with Messages

Breaking on a Condition

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

HOUR 24: Using Xcode Debug Gauges for Analysis

Putting Debug Gauges in Perspective

Monitoring CPU Utilization

Monitoring Memory Utilization

Monitoring Energy

Using Instruments

Summary

Q&A

Workshop

Quiz

Quiz Answers

Activities

Part V: Appendixes

Appendix A: C Syntax Summary

Data Types

Enumerated Type

Struct Type

Pointers

Arrays

Control Structures

if Statements

switch Statements

Repeat Statements

Appendix B: Apps, Packages, and Bundles

Looking Inside a Project Bundle

lproj Files

Asset Catalogs

plist Files

Precompiled Header Files (.pch)

Appendix C: Archiving and Packaging Apps for Development and Testing

Archiving

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.61.170