
More iPhone Development with Objective-C
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
If you are looking to extend your iOS programming skills beyond the basics then More iPhone Development with Objective-C is for you. Authors Dave Mark, Jayant Varma, Jeff LaMarche, Alex Horovitz, and Kevin Kim explain concepts as only they can-with code snippets you can customize and use, as you like, in your own apps.
More iPhone Development with Objective-C is an independent companion to Beginning iPhone Development with Objective-C. That is, it is a perfect second book, but it is also a great book for those looking to improve their skills who have already programmed for iOS. In particular it includes a series of chapters devoted to Core Data, the standard for Apple persistence. The authors carefully step through each Core Data concept and show techniques and tips specifically for writing larger apps-offering a breadth of coverage you won't find anywhere else.
More iPhone Development with Objective-C covers a variety of other topics, including Multipeer Connectivity's relatively simple Bluetooth/WiFi peer-to-peer model, MapKit, and media library access and playback so that your applications can utilize media on your users' computer. You'll also find coverage of Interface Builder, Live Previews and Custom Controls and some advanced techniques for debugging your applications. The book is filled with useful topics that will bring your programs up-to-date with the new functionality built into iOS.
More details
Other editions
Additional editions

Persons
Content
- Intro
- Contents at a Glance
- Contents
- About the Authors
- About the Technical Reviewer
- Acknowledgments
- Chapter 1: Here We Go Round Again
- What This Book Is
- What You Need to Know
- What You Need Before You Can Begin
- What's In this Book
- Chapter 2: Core Data: What, Why, and How
- A Brief History of Core Data
- Creating a Core Data Application
- Core Data Concepts and Terminology
- The Data Model
- Entities
- Properties
- Attributes
- Relationships
- Fetched Properties
- Fetch Requests
- Configurations
- The Data Model Class: NSManagedObjectModel
- The Persistent Store and Persistent Store Coordinator
- Reviewing the Data Model
- Managed Objects
- Key-Value Coding
- Managed Object Context
- Saves On Terminate
- Load Data from the Persistent Store
- The Fetched Results Controller
- Creating a Fetched Results Controller
- The Fetched Results Controller Delegate Methods
- Will Change Content Delegate Method
- Did Change Contents Delegate Method
- Did Change Object Delegate Method
- Did Change Section Delegate Method
- Retrieving a Managed Object from the Fetched Results Controller
- Creating and Inserting a New Managed Object
- Deleting Managed Objects
- Putting Everything in Context
- Chapter 3: A Super Start: Adding, Displaying, and Deleting Data
- Setting Up the Xcode Project
- Adding a Scene
- Scenes and Segues
- Storyboard Document Outline
- Application Architecture
- Designing the View Controller Interface
- Creating HeroListController
- Making the Connections and Outlets
- Navigation Bar Buttons
- Tab Bar and User Defaults
- Designing the Data Model
- Adding an Entity
- Editing the New Entity
- Adding the Name Attribute
- Attribute Types
- The Integer Data Types
- The Decimal, Double, and Float Data Types
- The String Data Type
- The Boolean Data Type
- The Date Data Type
- The Binary Data Type
- The Transformable Data Type
- Setting the name Attribute Type
- Adding the Rest of the Attributes
- Declaring the Fetched Results Controller
- Implementing the Fetched Results Controller
- Fetched Results Controller Delegate Methods
- Making It All Work
- Error Handling
- Implementing Edit and Add
- Coding the Table View Data Source and Delegate
- Sorting the Table View
- Loading the Fetch Request at Launch
- Let'Er Rip
- Done, but Not Done
- Chapter 4: The Devil in the Detail View
- View Implementation Choices
- Creating the Detail View Controller
- Wiring Up the Segue
- HeroDetailController
- Detail View Challenges
- Controlling the Table Structure with Property Lists
- Property Lists Explained
- Modeling Table Structure with a Property List
- Defining the Table View via Property List
- Parsing the Property List
- Pushing the Details
- Showing the Details
- Editing the Details
- Editing Mode in the Detail View
- Creating a Custom UITableViewCell Subclass
- Saving Your Changes
- Specialized Input Views
- DatePicker SuperDBEditCell Subclass
- Using the DatePicker SuperDBEditCell Subclass
- Implementing a Selection Picker
- Devil's End
- Chapter 5: Preparing for Change: Migrations and Versioning
- About Data Models
- Data Models Are Compiled
- Data Models Can Have Multiple Versions
- Creating a New Data Model Version
- The Current Data Model Version
- Data Model Version Identifiers
- Migrations
- Lightweight vs. Standard
- Standard Migrations
- Setting Up Your App to Use Lightweight Migrations
- Time to Migrate On
- Chapter 6: Custom Managed Objects
- Updating the Data Model
- Adding the Age Attribute
- Adding the Favorite Color Attribute
- Adding a Minimum Length to the Name Attribute
- Creating the Hero Class
- Tweaking the Hero Header
- Defaulting
- Validation
- Single-Attribute Validations
- nil vs. NULL
- Multiple-Attribute Validations
- Virtual Accessors
- Adding Validation Feedback
- Updating the Detail View
- Refactoring SuperDBEditCell
- Xcode Refactoring Options
- Moving Code Around
- Editable Property
- Creating a Color Table View Cell
- Custom Color Editor
- Custom Color Table View Cell
- Cleaning Up the Picker
- One More Thing
- Color Us Gone
- Chapter 7: Relationships, Fetched Properties, and Expressions
- Expanding Your Application: Superpowers and Reports
- Relationships
- To-One Relationships
- To- Many Relationships
- Inverse Relationships
- Fetched Properties
- Creating Relationships and Fetched Properties in the Data Model Editor
- Delete Rules
- Expressions and Aggregates
- Adding the Power Entity
- Creating the Powers Relationship
- Creating the Inverse Relationship
- Creating the olderHeroes Fetched Property
- What Is a Predicate?
- Creating the youngerHeroe s Fetched Property
- Creating the sameSexHeroes Fetched Property
- Creating the oppositeSexHeroes Fetched Property
- Adding Relationships and Fetched Properties to the Hero Class
- Updating the Detail View
- Rethinking Configuration
- Encapsulation and Information Hiding
- Data-Driven Configuration
- Adding Powers
- Refactoring the Detail View Controller
- Renaming the Configuration Class
- Refactoring the Detail Controller
- Refactoring the Hero Instance Variable
- A Little More Abstraction
- A New HeroDetailController
- The Power View Controller
- Navigating to the PowerViewController
- Fetch Properties
- Wonderful to the Core
- Chapter 8: Behind Every iCloud
- Data Storage with iCloud
- iCloud Basics
- iCloud Backup
- Enabling iCloud in Your Application
- Key-Value Data Storage
- Document Storage
- UIDocument
- UIDocument with iCloud
- NSMetadataQuery
- Core Data with iCloud
- Enhancing SuperDB
- Entitlements
- Enabling iCloud and Creating the Relevant Files
- Updating the Persistent Store
- Updating the Managed Object Context
- Updating the UI on DataChanged
- Testing the Data Store
- Keep Your Feet on the Ground
- Chapter 9: Peer-to-Peer Over Bluetooth Using Multipeer Connectivity
- Peer-to-Peer Connectivity
- This Chapter's Application
- Network Communication Models
- Client-Server Model
- Peer-to-Peer Model
- Hybrid Client-Server/Peer-to- Peer
- The Multipeer Connectivity Peer
- The Multipeer Connectivity Session
- Creating the Session
- Finding and Connecting to Other Sessions
- Listening for Other Sessions
- Connecting Peers
- Sending Data to a Peer
- Packaging Up Information to Send
- Receiving Data from a Peer
- Closing Connections
- Handling a Peer Connection
- Creating the Project
- Turning Off the Idle Timer
- Importing the Multipeer Connectivity Framework
- Designing the Interface
- Defining Application Constants
- Designing the Game Board
- Creating the Packet Object
- Setting Up the View Controller Header
- Implementing the Tic-Tac-Toe View Controller
- Multipeer Connectivity Peer-To-Peer Delegate Methods
- Multipeer Connectivity Session Delegate Methods
- Multipeer Connectivity Data Receive Handler
- Implementing Tic-Tac-Toe Methods
- Trying It
- Game On!
- Chapter 10: Map Kit
- This Chapter's Application
- Overview and Terminology
- The Map View
- Map Types
- Location Authorization
- User Location
- Coordinate Regions
- Converting Degrees to Distance
- Accommodating Aspect Ratio
- Setting the Region to Display
- The Map View Delegate
- Map Loading Delegate Methods
- Region Change Delegate Methods
- Annotations
- The Annotation Object
- The Annotation View
- Adding and Removing Annotations
- Selecting Annotations
- Providing the Map View with Annotation Views
- Geocoding and Reverse Geocoding
- Building the MapMe Application
- Linking the Map Kit and Core Location Frameworks
- Building the Interface
- Finishing the View Controller Interface
- Writing the Annotation Object Class
- Implementing the MapMe ViewController
- Go East, Young Programmer
- Chapter 11: Messaging: Mail, Social and iMessage
- This Chapter's Application
- The Message UI Framework
- Creating the Mail Compose View Controller
- Populating the Subject Line
- Populating Recipients
- Setting the Message Body
- Adding Attachments
- Presenting the Mail Compose View
- The Mail Compose View Controller Delegate Method
- Message Compose View Controller
- Message Attachments
- Disabling Message Attachments
- The Social Framework
- SLComposeViewController
- SLRequest
- The Activity View Controller
- Building the MessageImage Application
- Building the User Interface
- Taking the Picture
- Calling the Camera
- Picking the Message Sender
- Mailing It In...
- Chapter 12: Media Library Access and Playback
- The MediaPlayer Framework
- Media Items
- Media Item Persistent ID
- Media Type
- Filterable Properties
- Nonfilterable Numerical Attributes
- Retrieving Lyrics
- Retrieving Album Artwork
- User-Defined Properties
- AssetURL Property
- Media Item Collections
- Creating a New Collection
- Retrieving Media Items
- Creating Derived Collections
- Media Queries and Media Property Predicates
- The Media Picker Controller
- Handling Media Picker Cancels
- Handling Media Picker Selections
- The Music Player Controller
- Creating the Music Player Controller
- Determining Whether the Music Player Controller Is Playing
- Specifying the Music Player Controller's Queue
- Getting or Setting the Currently Playing Media Item
- Skipping Tracks
- Seeking
- Playback Time
- Repeat and Shuffle Modes
- Adjusting the Music Player Controller's Volume
- Music Player Controller Notifications
- Simple Music Player
- Building the SimplePlayer Application
- Building the User Interface
- Declaring Outlets and Actions
- MPMoviePlayerController
- MPMediaPlayer
- AVFoundation
- TL
- DR: AVKit
- Playing Video
- AVMediaPlayer
- AVMediaPlayer v2
- Photo Library
- Modifying the Photo Library
- Are You Talking To Me?
- Avast! Rough Waters Ahead!
- Chapter 13: Lights, Camera, and Action
- Lights
- Camera
- Changing Settings
- Putting It All Together
- Choosing a Camera
- Choosing an Output
- Scanning Barcodes
- Generating Barcodes
- Make Some Noise
- Recording Audio
- The Show Must Go On
- Chapter 14: Interface Builder and Storyboards
- Storyboard View Controllers
- Container View Controller
- Segues
- Controls
- Inspectable
- Designable
- A More Useful BasicControl
- View Controllers
- Transitions
- Cue'em Up
- Chapter 15: Unit Testing, Debugging, and Instruments
- Unit Tests
- Debugging
- Breakpoints
- The Debug Navigator
- The Debug Area
- Trying Out the Debug Controls
- The Breakpoint Navigator and Symbolic Breakpoints
- Conditional Breakpoints
- Breakpoint Actions
- Static Analysis
- One More Thing About Debugging
- Profiling With Instruments
- End of the Road
- Chapter 16: The Road Goes Ever On.
- Getting Unstuck
- Apple's Documentation
- Mailing Lists
- Web Sites
- Blogs
- Combination
- Farewell
- Index
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.