Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| Preface | p. xi |
| The Basic | p. 1 |
| Creating a Simple iOS App in Xcode | p. 2 |
| Understanding Interface Builder | p. 5 |
| Compiling iOS Apps | p. 10 |
| Running iOS Apps on the Simulator | p. 12 |
| Running iOS Apps on iOS Devices | p. 13 |
| Packaging iOS Apps for Distribution | p. 16 |
| Declaring Variables in Objective-C | p. 21 |
| Allocating and Mak... MORE | p. 24 |
| Comparing Values in Objective-C with an If Statement | p. 28 |
| Implementing Loops with For Statements | p. 31 |
| Implementing While Loops | p. 33 |
| Creating Custom Classes | p. 36 |
| Defining Functionality for Classes | p. 39 |
| Defining Two or More Methods with the Same Name | p. 43 |
| Allocating and Initializing Objects | p. 47 |
| Adding Properties to Classes | p. 49 |
| Moving From Manual Reference Counting to Automatic Reference Counting | p. 53 |
| Typecasting with Automatic Reference Counting | p. 58 |
| Delegating Tasks with Protocols | p. 62 |
| Determining Whether Instance or Class Methods Are Available | p. 68 |
| Determining Whether a Class Is Available at Runtime | p. 71 |
| Allocating and Making Use of Numbers | p. 72 |
| Allocating and Making Use of Arrays | p. 74 |
| Allocating and Making Use of Dictionaries | p. 79 |
| Allocating and Making Use of Sets | p. 82 |
| Creating Bundles | p. 85 |
| Loading Data From the Main Bundle | p. 86 |
| Loading Data From Other Bundles | p. 89 |
| Sending Notifications with NSNotificationCenter | p. 92 |
| Listening for Notifications Sent From NSNotificationCenter | p. 96 |
| Implementing Controllers and Views | p. 101 |
| Displaying Alerts with UIAlertView | p. 102 |
| Creating and Using Switches with UISwitch | p. 111 |
| Picking Values with UIPickerView | p. 115 |
| Picking the Date and Time with UIDatePicker | p. 123 |
| Implementing Range Pickers with UISlider | p. 128 |
| Grouping Compact Options with UISegmentedControl | p. 133 |
| Presenting and Managing Views with UIViewController | p. 140 |
| Implementing Navigation with UINavigationController | p. 144 |
| Manipulating a Navigation Controller's Array of View Controllers | p. 151 |
| Displaying an Image on a Navigation Bar | p. 152 |
| Adding Buttons to Navigation Bars Using UIBarButtonItem | p. 153 |
| Presenting Multiple View Controllers with UITabBarController | p. 162 |
| Displaying Static Text with UILabel | p. 169 |
| Accepting User Text Input with UITextField | p. 174 |
| Displaying Long Lines of Text with UITextView | p. 184 |
| Adding Buttons to the User Interface with UIButton | p. 189 |
| Displaying Images with UIImageView | p. 194 |
| Creating Scrollable Content with UIScrollView | p. 199 |
| Loading Web Pages with UIWebView | p. 204 |
| Presenting Master-Detail Views with UISplitViewController | p. 209 |
| Enabling Paging with UIPageViewController | p. 215 |
| Displaying Popovers with UIPopoverController | p. 220 |
| Displaying Progress with UIProgressView | p. 231 |
| Listening and Reacting to Keyboard Notifications | p. 233 |
| Constructing and Using Table Views | p. 251 |
| Instantiating a Table View | p. 251 |
| Assigning a Delegate to a Table View | p. 254 |
| Populating a Table View with Data | p. 255 |
| Receiving and Handling Table View Events | p. 260 |
| Using Different Types of Accessories in a Table View Cell | p. 261 |
| Creating Custom Table View Cell Accessories | p. 264 |
| Displaying Hierarchical Data in Table Views | p. 266 |
| Enabling Swipe Deletion of Table View Cells | p. 268 |
| Constructing Headers and Footers in Table Views | p. 270 |
| Displaying Context Menus on Table Views Cells | p. 281 |
| Moving Cells and Sections in Table Views | p. 286 |
| Deleting Cells and Sections From Table Views | p. 294 |
| Storyboards | p. 305 |
| Creating a Project with Storyboards | p. 306 |
| Adding a Navigation Controller to a Storyboard | p. 309 |
| Passing Data From One Screen to Another | p. 319 |
| Adding a Storyboard to an Existing Project | p. 321 |
| Concurrency | p. 325 |
| Constructing Block Objects | p. 331 |
| Accessing Variables in Block Objects | p. 335 |
| Invoking Block Objects | p. 341 |
| Dispatching Tasks to Grand Central Dispatch | p. 342 |
| Performing UI-Related Tasks with GCD | p. 344 |
| Performing Non-UI Related Tasks Synchronously with GCD | p. 348 |
| Performing Non-UI Related Tasks Asynchronously with GCD | p. 351 |
| Performing Tasks After a Delay with GCD | p. 357 |
| Performing a Task Only Once with GCD | p. 360 |
| Grouping Tasks Together with GCD | p. 362 |
| Constructing Your Own Dispatch Queues with GCD | p. 366 |
| Running Tasks Synchronously with Operations | p. 369 |
| Running Tasks Asynchronously with Operations | p. 375 |
| Creating Dependency Between Operations | p. 382 |
| Creating Timers | p. 385 |
| Creating Concurrency with Threads | p. 390 |
| Invoking Background Methods | p. 395 |
| Exiting Threads and Timers | p. 396 |
| Core Location and Maps | p. 401 |
| Creating a Map View | p. 403 |
| Handling the Events of a Map View | p. 405 |
| Pinpointing the Location of a Device | p. 407 |
| Displaying Pins on a Map View | p. 410 |
| Displaying Pins with Different Colors on a Map View | p. 412 |
| Displaying Custom Pins on a Map View | p. 419 |
| Converting Meaningful Addresses to Longitude and Latitude | p. 422 |
| Converting Longitude and Latitude to a Meaningful Address | p. 424 |
| Implementing Gesture Recognizers | p. 427 |
| Detecting Swipe Gestures | p. 429 |
| Detecting Rotation Gestures | p. 431 |
| Detecting Panning and Dragging Gestures | p. 435 |
| Detecting Long Press Gestures | p. 437 |
| Detecting Tap Gestures | p. 441 |
| Detecting Pinch Gestures | p. 443 |
| Networking, JSON, XML, and Twitter | p. 47 |
| Downloading Asynchronously with NSURLConnection | p. 447 |
| Handling Timeouts in Asynchronous Connections | p. 450 |
| Downloading Synchronously with NSURLConnection | p. 451 |
| Modifying a URL Request with NSMutableURLRequest | p. 454 |
| Sending HTTP GET Requests with NSURLConnection | p. 455 |
| Sending HTTP POST Requests with NSURLConnection | p. 457 |
| Sending HTTP DELETE Requests with NSURLConnection | p. 460 |
| Sending HTTP PUT Requests with NSURLConnection | p. 462 |
| Serializing Arrays and Dictionaries into JSON | p. 464 |
| Deserializing JSON into Arrays and Dictionaries | p. 467 |
| Integrating Twitter Functionality into Your Apps | p. 470 |
| Parsing XML with NSXMLParser | p. 477 |
| Audio and Video | p. 483 |
| Playing Audio Files | p. 483 |
| Handling Interruptions While Playing Audio | p. 485 |
| Recording Audio | p. 486 |
| Handling Interruptions While Recording Audio | p. 493 |
| Playing Audio Over Other Active Sounds | p. 494 |
| Playing Video Files | p. 498 |
| Capturing Thumbnails From a Video File | p. 502 |
| Accessing the Music Library | p. 505 |
| Address Book | p. 513 |
| Retrieving a Reference to an Address Book | p. 516 |
| Retrieving All the People in the Address Book | p. 518 |
| Retrieving Properties of Address Book Entries | p. 520 |
| Inserting a Person Entry into the Address Book | p. 525 |
| Inserting a Group Entry into the Address Book | p. 528 |
| Adding Persons to Groups | p. 531 |
| Searching the Address Book | p. 534 |
| Retrieving and Setting a Person's Address Book Image | p. 540 |
| Camera and the Photo Library | p. 547 |
| Detecting and Probing the Camera | p. 549 |
| Taking Photos with the Camera | p. 554 |
| Taking Videos with the Camera | p. 558 |
| Storing Photos in the Photo Library | p. 561 |
| Storing Videos in the Photo Library | p. 564 |
| Retrieving Photos and Videos From the Photo Library | p. 566 |
| Retrieving Assets From the Assets Library | p. 568 |
| Editing Videos on an iOS Device | p. 575 |
| Multitasking | p. 581 |
| Detecting the Availability of Multitasking | p. 582 |
| Completing a Long-Running Task in the Background | p. 583 |
| Receiving Local Notifications in the Background | p. 587 |
| Playing Audio in the Background | p. 596 |
| Handling Location Changes in the Background | p. 598 |
| Saving and Loading the State of Multitasking iOS Apps | p. 601 |
| Handling Network Connections in the Background | p. 605 |
| Handling Notifications Delivered to a Waking App | p. 608 |
| Responding to Changes in App Settings | p. 610 |
| Opting Out of Multitasking | p. 613 |
| CoreData | p. 615 |
| Creating a Core Data Model with Xcode | p. 618 |
| Generating Class Files for Core Data Entities | p. 622 |
| Creating and Saving Data Using Core Data | p. 624 |
| Reading Data From Core Data | p. 626 |
| Deleting Data From Core Data | p. 629 |
| Sorting Data in Core Data | p. 632 |
| Boosting Data Access in Table Views | p. 634 |
| Implementing Relationships in Core Data | p. 646 |
| Dates, Calendars, and Events | p. 653 |
| Retrieving the List of Calendars | p. 656 |
| Adding Events to Calendars | p. 658 |
| Accessing the Contents of Calendars | p. 662 |
| Removing Events From Calendars | p. 666 |
| Adding Recurring Events to Calendars | p. 670 |
| Retrieving the Attendees of an Event | p. 674 |
| Adding Alarms to Calendars | p. 679 |
| Handling Event Changed Notifications | p. 681 |
| Presenting Event View Controllers | p. 684 |
| Presenting Event Edit View Controllers | p. 688 |
| Graphic and Animations | p. 693 |
| Enumerating and Loading Fonts | p. 702 |
| Drawing Text | p. 704 |
| Constructing, Setting, and Using Colors | p. 705 |
| Drawing Images | p. 711 |
| Drawing Lines | p. 716 |
| Constructing Paths | p. 722 |
| Drawing Rectangles | p. 727 |
| Adding Shadows to Shapes | p. 731 |
| Drawing Gradients | p. 737 |
| Displacing Shapes Drawn on Graphic Contexts | p. 745 |
| Scaling Shapes Drawn on Graphic Contexts | p. 749 |
| Rotating Shapes Drawn on Graphic Contexts | p. 752 |
| Animating and Moving Views | p. 753 |
| Animating and Scaling Views | p. 763 |
| Animating and Rotating Views | p. 765 |
| Core Motion | p. 767 |
| Detecting the Availability of an Accelerometer | p. 769 |
| Detecting the Availability of a Gyroscope | p. 770 |
| Retrieving Accelerometer Data | p. 772 |
| Detecting Shakes on an iOS Device | p. 775 |
| Retrieving Gyroscope Data | p. 779 |
| iCIoud | p. 781 |
| Setting Up Your App for iCloud | p. 782 |
| Storing and Synchronizing Dictionaries in iCloud | p. 787 |
| Creating and Managing Folders for Apps in iCloud | p. 792 |
| Searching for Files and Folders in iCloud | p. 798 |
| Storing User Documents in iCloud | p. 807 |
| Managing the State of Documents in iCloud | p. 822 |
| Handling Conflicts in iCloud Documents | p. 825 |
| Index | p. 837 |
| Table of Contents provided by Ingram. All Rights Reserved. |