| |
| |
Preface | |
| |
| |
| |
The Basic | |
| |
| |
| |
Creating a Simple iOS App in Xcode | |
| |
| |
| |
Understanding Interface Builder | |
| |
| |
| |
Compiling iOS Apps | |
| |
| |
| |
Running iOS Apps on the Simulator | |
| |
| |
| |
Running iOS Apps on iOS Devices | |
| |
| |
| |
Packaging iOS Apps for Distribution | |
| |
| |
| |
Declaring Variables in Objective-C | |
| |
| |
| |
Allocating and Making Use of Strings | |
| |
| |
| |
Comparing Values in Objective-C with an If Statement | |
| |
| |
| |
Implementing Loops with For Statements | |
| |
| |
| |
Implementing While Loops | |
| |
| |
| |
Creating Custom Classes | |
| |
| |
| |
Defining Functionality for Classes | |
| |
| |
| |
Defining Two or More Methods with the Same Name | |
| |
| |
| |
Allocating and Initializing Objects | |
| |
| |
| |
Adding Properties to Classes | |
| |
| |
| |
Moving From Manual Reference Counting to Automatic Reference Counting | |
| |
| |
| |
Typecasting with Automatic Reference Counting | |
| |
| |
| |
Delegating Tasks with Protocols | |
| |
| |
| |
Determining Whether Instance or Class Methods Are Available | |
| |
| |
| |
Determining Whether a Class Is Available at Runtime | |
| |
| |
| |
Allocating and Making Use of Numbers | |
| |
| |
| |
Allocating and Making Use of Arrays | |
| |
| |
| |
Allocating and Making Use of Dictionaries | |
| |
| |
| |
Allocating and Making Use of Sets | |
| |
| |
| |
Creating Bundles | |
| |
| |
| |
Loading Data From the Main Bundle | |
| |
| |
| |
Loading Data From Other Bundles | |
| |
| |
| |
Sending Notifications with NSNotificationCenter | |
| |
| |
| |
Listening for Notifications Sent From NSNotificationCenter | |
| |
| |
| |
Implementing Controllers and Views | |
| |
| |
| |
Displaying Alerts with UIAlertView | |
| |
| |
| |
Creating and Using Switches with UISwitch | |
| |
| |
| |
Picking Values with UIPickerView | |
| |
| |
| |
Picking the Date and Time with UIDatePicker | |
| |
| |
| |
Implementing Range Pickers with UISlider | |
| |
| |
| |
Grouping Compact Options with UISegmentedControl | |
| |
| |
| |
Presenting and Managing Views with UIViewController | |
| |
| |
| |
Implementing Navigation with UINavigationController | |
| |
| |
| |
Manipulating a Navigation Controller's Array of View Controllers | |
| |
| |
| |
Displaying an Image on a Navigation Bar | |
| |
| |
| |
Adding Buttons to Navigation Bars Using UIBarButtonItem | |
| |
| |
| |
Presenting Multiple View Controllers with UITabBarController | |
| |
| |
| |
Displaying Static Text with UILabel | |
| |
| |
| |
Accepting User Text Input with UITextField | |
| |
| |
| |
Displaying Long Lines of Text with UITextView | |
| |
| |
| |
Adding Buttons to the User Interface with UIButton | |
| |
| |
| |
Displaying Images with UIImageView | |
| |
| |
| |
Creating Scrollable Content with UIScrollView | |
| |
| |
| |
Loading Web Pages with UIWebView | |
| |
| |
| |
Presenting Master-Detail Views with UISplitViewController | |
| |
| |
| |
Enabling Paging with UIPageViewController | |
| |
| |
| |
Displaying Popovers with UIPopoverController | |
| |
| |
| |
Displaying Progress with UIProgressView | |
| |
| |
| |
Listening and Reacting to Keyboard Notifications | |
| |
| |
| |
Constructing and Using Table Views | |
| |
| |
| |
Instantiating a Table View | |
| |
| |
| |
Assigning a Delegate to a Table View | |
| |
| |
| |
Populating a Table View with Data | |
| |
| |
| |
Receiving and Handling Table View Events | |
| |
| |
| |
Using Different Types of Accessories in a Table View Cell | |
| |
| |
| |
Creating Custom Table View Cell Accessories | |
| |
| |
| |
Displaying Hierarchical Data in Table Views | |
| |
| |
| |
Enabling Swipe Deletion of Table View Cells | |
| |
| |
| |
Constructing Headers and Footers in Table Views | |
| |
| |
| |
Displaying Context Menus on Table Views Cells | |
| |
| |
| |
Moving Cells and Sections in Table Views | |
| |
| |
| |
Deleting Cells and Sections From Table Views | |
| |
| |
| |
Storyboards | |
| |
| |
| |
Creating a Project with Storyboards | |
| |
| |
| |
Adding a Navigation Controller to a Storyboard | |
| |
| |
| |
Passing Data From One Screen to Another | |
| |
| |
| |
Adding a Storyboard to an Existing Project | |
| |
| |
| |
Concurrency | |
| |
| |
| |
Constructing Block Objects | |
| |
| |
| |
Accessing Variables in Block Objects | |
| |
| |
| |
Invoking Block Objects | |
| |
| |
| |
Dispatching Tasks to Grand Central Dispatch | |
| |
| |
| |
Performing UI-Related Tasks with GCD | |
| |
| |
| |
Performing Non-UI Related Tasks Synchronously with GCD | |
| |
| |
| |
Performing Non-UI Related Tasks Asynchronously with GCD | |
| |
| |
| |
Performing Tasks After a Delay with GCD | |
| |
| |
| |
Performing a Task Only Once with GCD | |
| |
| |
| |
Grouping Tasks Together with GCD | |
| |
| |
| |
Constructing Your Own Dispatch Queues with GCD | |
| |
| |
| |
Running Tasks Synchronously with Operations | |
| |
| |
| |
Running Tasks Asynchronously with Operations | |
| |
| |
| |
Creating Dependency Between Operations | |
| |
| |
| |
Creating Timers | |
| |
| |
| |
Creating Concurrency with Threads | |
| |
| |
| |
Invoking Background Methods | |
| |
| |
| |
Exiting Threads and Timers | |
| |
| |
| |
Core Location and Maps | |
| |
| |
| |
Creating a Map View | |
| |
| |
| |
Handling the Events of a Map View | |
| |
| |
| |
Pinpointing the Location of a Device | |
| |
| |
| |
Displaying Pins on a Map View | |
| |
| |
| |
Displaying Pins with Different Colors on a Map View | |
| |
| |
| |
Displaying Custom Pins on a Map View | |
| |
| |
| |
Converting Meaningful Addresses to Longitude and Latitude | |
| |
| |
| |
Converting Longitude and Latitude to a Meaningful Address | |
| |
| |
| |
Implementing Gesture Recognizers | |
| |
| |
| |
Detecting Swipe Gestures | |
| |
| |
| |
Detecting Rotation Gestures | |
| |
| |
| |
Detecting Panning and Dragging Gestures | |
| |
| |
| |
Detecting Long Press Gestures | |
| |
| |
| |
Detecting Tap Gestures | |
| |
| |
| |
Detecting Pinch Gestures | |
| |
| |
| |
Networking, JSON, XML, and Twitter | |
| |
| |
| |
Downloading Asynchronously with NSURLConnection | |
| |
| |
| |
Handling Timeouts in Asynchronous Connections | |
| |
| |
| |
Downloading Synchronously with NSURLConnection | |
| |
| |
| |
Modifying a URL Request with NSMutableURLRequest | |
| |
| |
| |
Sending HTTP GET Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP POST Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP DELETE Requests with NSURLConnection | |
| |
| |
| |
Sending HTTP PUT Requests with NSURLConnection | |
| |
| |
| |
Serializing Arrays and Dictionaries into JSON | |
| |
| |
| |
Deserializing JSON into Arrays and Dictionaries | |
| |
| |
| |
Integrating Twitter Functionality into Your Apps | |
| |
| |
| |
Parsing XML with NSXMLParser | |
| |
| |
| |
Audio and Video | |
| |
| |
| |
Playing Audio Files | |
| |
| |
| |
Handling Interruptions While Playing Audio | |
| |
| |
| |
Recording Audio | |
| |
| |
| |
Handling Interruptions While Recording Audio | |
| |
| |
| |
Playing Audio Over Other Active Sounds | |
| |
| |
| |
Playing Video Files | |
| |
| |
| |
Capturing Thumbnails From a Video File | |
| |
| |
| |
Accessing the Music Library | |
| |
| |
| |
Address Book | |
| |
| |
| |
Retrieving a Reference to an Address Book | |
| |
| |
| |
Retrieving All the People in the Address Book | |
| |
| |
| |
Retrieving Properties of Address Book Entries | |
| |
| |
| |
Inserting a Person Entry into the Address Book | |
| |
| |
| |
Inserting a Group Entry into the Address Book | |
| |
| |
| |
Adding Persons to Groups | |
| |
| |
| |
Searching the Address Book | |
| |
| |
| |
Retrieving and Setting a Person's Address Book Image | |
| |
| |
| |
Camera and the Photo Library | |
| |
| |
| |
Detecting and Probing the Camera | |
| |
| |
| |
Taking Photos with the Camera | |
| |
| |
| |
Taking Videos with the Camera | |
| |
| |
| |
Storing Photos in the Photo Library | |
| |
| |
| |
Storing Videos in the Photo Library | |
| |
| |
| |
Retrieving Photos and Videos From the Photo Library | |
| |
| |
| |
Retrieving Assets From the Assets Library | |
| |
| |
| |
Editing Videos on an iOS Device | |
| |
| |
| |
Multitasking | |
| |
| |
| |
Detecting the Availability of Multitasking | |
| |
| |
| |
Completing a Long-Running Task in the Background | |
| |
| |
| |
Receiving Local Notifications in the Background | |
| |
| |
| |
Playing Audio in the Background | |
| |
| |
| |
Handling Location Changes in the Background | |
| |
| |
| |
Saving and Loading the State of Multitasking iOS Apps | |
| |
| |
| |
Handling Network Connections in the Background | |
| |
| |
| |
Handling Notifications Delivered to a Waking App | |
| |
| |
| |
Responding to Changes in App Settings | |
| |
| |
| |
Opting Out of Multitasking | |
| |
| |
| |
CoreData | |
| |
| |
| |
Creating a Core Data Model with Xcode | |
| |
| |
| |
Generating Class Files for Core Data Entities | |
| |
| |
| |
Creating and Saving Data Using Core Data | |
| |
| |
| |
Reading Data From Core Data | |
| |
| |
| |
Deleting Data From Core Data | |
| |
| |
| |
Sorting Data in Core Data | |
| |
| |
| |
Boosting Data Access in Table Views | |
| |
| |
| |
Implementing Relationships in Core Data | |
| |
| |
| |
Dates, Calendars, and Events | |
| |
| |
| |
Retrieving the List of Calendars | |
| |
| |
| |
Adding Events to Calendars | |
| |
| |
| |
Accessing the Contents of Calendars | |
| |
| |
| |
Removing Events From Calendars | |
| |
| |
| |
Adding Recurring Events to Calendars | |
| |
| |
| |
Retrieving the Attendees of an Event | |
| |
| |
| |
Adding Alarms to Calendars | |
| |
| |
| |
Handling Event Changed Notifications | |
| |
| |
| |
Presenting Event View Controllers | |
| |
| |
| |
Presenting Event Edit View Controllers | |
| |
| |
| |
Graphic and Animations | |
| |
| |
| |
Enumerating and Loading Fonts | |
| |
| |
| |
Drawing Text | |
| |
| |
| |
Constructing, Setting, and Using Colors | |
| |
| |
| |
Drawing Images | |
| |
| |
| |
Drawing Lines | |
| |
| |
| |
Constructing Paths | |
| |
| |
| |
Drawing Rectangles | |
| |
| |
| |
Adding Shadows to Shapes | |
| |
| |
| |
Drawing Gradients | |
| |
| |
| |
Displacing Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Scaling Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Rotating Shapes Drawn on Graphic Contexts | |
| |
| |
| |
Animating and Moving Views | |
| |
| |
| |
Animating and Scaling Views | |
| |
| |
| |
Animating and Rotating Views | |
| |
| |
| |
Core Motion | |
| |
| |
| |
Detecting the Availability of an Accelerometer | |
| |
| |
| |
Detecting the Availability of a Gyroscope | |
| |
| |
| |
Retrieving Accelerometer Data | |
| |
| |
| |
Detecting Shakes on an iOS Device | |
| |
| |
| |
Retrieving Gyroscope Data | |
| |
| |
| |
iCIoud | |
| |
| |
| |
Setting Up Your App for iCloud | |
| |
| |
| |
Storing and Synchronizing Dictionaries in iCloud | |
| |
| |
| |
Creating and Managing Folders for Apps in iCloud | |
| |
| |
| |
Searching for Files and Folders in iCloud | |
| |
| |
| |
Storing User Documents in iCloud | |
| |
| |
| |
Managing the State of Documents in iCloud | |
| |
| |
| |
Handling Conflicts in iCloud Documents | |
| |
| |
Index | |