Preface
1. Working with Objects
1.1 Implementing and Using Custom Objects
1.2 Allocating and Initializing Objects
1.3 Defining Two or More Methods with the Same Name
in an Object
1.4 Defining and Accessing Properties
1.5 Managing Properties Manually
1.6 Reusing a Block of Code
1.7 Communicating With Objects
1.8 Invoking the Selectors of an Object Dynamically
1.9 Managing Memory with the iOS SDK
1.10 Managing Untyped Objects
2. Implementing Controllers and Views
2.1 Getting and Using the Application Delegate
2.2 Managing the Views in Your Application
2.3 Creating Your Application's GUI
2.4 Making Your View Controller Available at Runtime
2.5 Using a View in Your Application's GUI
2.6 Managing Master-Detail Views
2.7 Managing Multiple Views
2.8 Incorporating and Using Models in the GUI
2.9 Implementing Navigation Bars
2.10 Switching from One View to Another
2.11 Setting the Title on a Navigation Bar
2.12 Displaying an Image for the Title of the Navigation Bar
2.13 Creating and Managing Buttons on a Navigation Bar
2.14 Removing a View from a Navigation Controller
2.15 Manipulating a Navigation Controller's Array of
View Controllers
2.16 Incorporating a Tab Bar into Your Application
2.17 Pop Up Additional Information over iPad UI Elements
3. Constructing and Using Table Views
3.1 Creating a Table View Using Interface Builder
3.2 Creating a Table View Using Code
3.3 Assigning an Event Handler to a Table View Using
Interface Builder
3.4 Assigning an Event Handler to a Table View Using Xcode
3.5 Populating a Table View with Data
3.6 Receiving and Handling Table View Events
3.7 Using Different Types of Accessories iri a Table View
3.8 Creating Custom Table View Accessories
3.9 Customizing the Appearance of a Table View's Contents
3.10 Displaying Hierarchical Data
3.11 Effectively Managing Memory with Table Views
3.12 Editing and Moving Data in a Table View
3.13 Enabling Swipe Deletion
3.14 Grouping Data
4. Core Location and Maps
4.1 Creating a Map Using Interface Builder
4.2 Creating a Map Using Code
4.3 Handling the Events of a Map
4.4 Pinpointing a Device's Location
4.5 Displaying Built-in Pins on a Map View
4.6 Displaying Pins with Different Colors on a Map View
4.7 Creating and Displaying Custom Pins on a Map View
4.8 Retrieving Meaningful Addresses Using Spatial Coordinates
4.9 Retrieving Spatial Coordinates Using Meaningful Addresses
5. Implementing Gesture Recognizers
5.1 Detecting Swipe Gestures
5.2 Reacting to Rotation Gestures
5.3 Detecting Panning and Dragging Gestures
5.4 Detecting Long Press Gestures
5.5 Responding to Tap Gestures
5.6 Responding to Pinch Gestures
6. Networking and XMk
6.1 Opening and Reading a Local XML File
6.2 Parsing an XML File into Objects
6.3 Downloading Files Synchronously
6.4 Downloading Files Asynchronously
6.5 Reading and Parsing Remote XML Files
6.6 Caching Files in Memory
6.7 Caching Files on Disk
7. Operations, Threads, and Timers
7.1 Running Tasks Synchronously
7.2 Running Tasks Asynchronously
7.3 Creating a Dependency Between Tasks
7.4 Performing a Task After a Delay
7.5 Performing Periodic Tasks
7.6 Performing Periodic Tasks Efficiently
7.7 Initializing Threads Implicitly
7.8 Exiting Threads and Timers
7.9 Avoiding Memory Leaks in Threads
8. Audio and Video ;...
8.1 Playing Audio Files
8.2 Handling Interruptions While Playing Audio Files
8.3 Recording Audio Files
8.4 Handling Interruptions While Recording Audio Files
8.5 Playing Audio over Other Sounds That Are Playing
8.6 Playing Video Files
8.7 Capturing Thumbnails from a Video File Asynchronously
8.8 Accessing the iPod Library in Response to a User Request
9. Address Book
9.1 Accessing the Address Book
9.2 Retrieving All the People in the Address Book
9.3 Retrieving Properties of Address Book Entries
9.4 Inserting a Person Entry in the User's Address Book
9.5 Inserting a Group Entry in the User's Address Book
9.6 Adding Persons to Groups
9.7 Searching in the Address Book
9.8 Retrieving and Setting a Person's Address Book Image
10. Camera and the Photo Library
10.1 Detecting and Probing the Camera
10.2 Taking Photos with the Camera
10.3 Taking Videos with the Camera
10.4 Storing Photos in the Photo Library
10.5 Storing Videos in the Photo Library
10.6 Retrieving Photos and Videos from the Photo Library
10.7 Retrieving Assets from the Assets Library
10.8 Editing Videos on an iOS Device
11. Multitasking
11.1 Detecting the Availability of Multitasking
11.2 Completing a Long-Running Task in the Background
11.3 Receiving Local Notifications in the Background
11.4 Playing Audio in the Background
11.5 Handling Location Changes in the Background
11.6 Saving and Loading the State of a Multitasking iOS Application
11.7 Handling Network Connections in the Background
11.8 Handling Notifications Delivered to a Waking Application
11.9 Handling Locale Changes in the Background
11.10 Responding to Changes in an Application's Settings
11.11 Opting Out of Background Execution
12. Core Data
12.1 Creating a Core Data Model with Xcode
12.2 Creating and Using Core Data Model Classes
12.3 Creating and Saving Data Using Core Data
12.4 Loading Data Using Core Data
12.5 Deleting Data Using Core Data
12.6 Sorting Data Using Core Data
12.7 Boosting Data Access in Table Views
12.8 Implementing Relationships with Core Data
13. Event Kit
13.1 Retrieving the List of Calendars
13.2 Adding Events to Calendars
13.3 Accessing the Contents of Calendars
13.4 Removing Events from Calendars
13.5 Adding Recurring Events to Calendars
13.6 Retrieving the Attendees of an Event
13.7 Adding Alarms to Calendars
13.8 Handling Event Changed Notifications
13.9 Presenting Event View Controllers
13.10 Presenting Event Edit View Controllers
14. Graphics
14.1 Drawing Basic Shapes on a Graphics Context
14.2 Drawing Paths on a Graphics Context
14.3 Drawing Images on a Graphics Context
14.4 Capturing the Screen Contents into an Image
14.5 Drawing Text with Core Graphics
15. Core Motion
15.1 Detecting the Availability of an Accelerometer
15.2 Detecting the Availability of a Gyroscope
15.3 Retrieving Accelerometer Data
15.4 Detecting a Shake on an iOS Device
15.5 Retrieving Gyroscope Data
Index