Core data for iOS : developing data-driven applications for the iPad, iPhone, and iPod touch /

Saved in:
Bibliographic Details
Author / Creator:Isted, Tim.
Imprint:Upper Saddle River, NJ : Addison-Wesley, c2011.
Description:xviii, 285 p. : ill. ; 24 cm.
Language:English
Series:Core frameworks series
Core frameworks series.
Subject:
Format: Print Book
URL for this record:http://pi.lib.uchicago.edu/1001/cat/bib/8403301
Hidden Bibliographic Details
Other authors / contributors:Harrington, Tom.
ISBN:9780321670427 (pbk. : alk. paper)
0321670426 (pbk. : alk. paper)
Notes:Includes bibliographical references and index.
Table of Contents:
  • Preface
  • Part I. Introduction
  • 1. An Overview of Core Data on iOS Devices
  • A Little History
  • The Birth of Core Data
  • Why Use Core Data on iOS?
  • Relationship Management
  • Managed Objects and Data Validation
  • Undo and State Management
  • Core Data iOS and Desktop Differences
  • The Fetched Results Controller
  • Core Data Case Studies
  • MoneyWell for iPhone
  • Calcuccino
  • Associated Press
  • 2. A Core Data Primer
  • Persisting Objects to Disk
  • The Core Data Approach
  • Entities and Managed Objects
  • Relationships
  • Managed Object Contexts
  • Fetching Objects
  • Faulting and Uniquing
  • Persistent Stores and Persistent Store Coordinators
  • Examining the Xcode Core Data Templates
  • The Navigation-Based Project Template
  • The Data Modeler
  • Setting up the Core Data Stack
  • Running the Application
  • A Quick Look at the RootViewController Code
  • Summary
  • 3. Modeling Your Data
  • Managed Objects and Entities
  • Dividing Your Data into Entities
  • Core Data in Model-Object Terms
  • Data Normalization
  • Storing Binary Data
  • Working with Xcode's Data Modeler
  • Creating Entities
  • Creating Properties
  • Creating Relationships
  • Summary
  • Part II. Working with Core Data
  • 4. Basic Storing and Fetching
  • Creating New Managed Objects
  • Saving the Context
  • Fetching Saved Managed Objects
  • Deleting Managed Objects
  • Working with Table Views
  • The Random Dates Application Project
  • The Random Dates Data Model
  • Basic RootViewController Behavior
  • Fetching the Random Date Objects
  • Displaying the RandomDate Objects
  • Deleting the RandomDate Objects
  • Custom Managed Object Sub-Classes
  • Creating and Setting a Custom Class for a Managed Object
  • Summary
  • 5. Using NSFetchedResultsController
  • Introducing NSFetchedResultsController
  • Creating an NSFetchedResultsController
  • Supplying Information to Table Views
  • The Number of Sections and Rows
  • Returning the Cell for an Index Path
  • Returning Information about Sections
  • Handling Underlying Data Changes
  • Caching Information
  • Using an NSFetchedResultsController in the Random Dates Application
  • Subclassing NSFetchedResultsController
  • Summary
  • 6. Working with Managed Objects
  • Basic Managed Object Subclass Files
  • Creating the Random People Project
  • Managed Object Class Interfaces
  • Managed Object Class Implementations
  • Configuring the Random People Application
  • Displaying the Information
  • Data Validation
  • Validating Individual Properties
  • Validation Based on Other Properties
  • Validation Prior to Deletion
  • Fixing the Random People Application
  • Working with Transient Attributes
  • Modifying the Data Model
  • Adding to the AWPerson Interface and Implementation
  • Adding a Getter Method for the Transient Property
  • Adding a Setter Method for the Transient Property
  • Using the UIColor Property
  • Working with Transformable Attributes
  • The Managed Object Lifecycle
  • Initializing Non-persistent Properties
  • Summary
  • 7. Working with Predicates
  • Predicate Basics
  • Creating Predicates Using Format Strings
  • Predicate Variables
  • Predicate Comparison Operators
  • Key Paths
  • Comparing Strings
  • Compound Predicates
  • NSCompoundPredicate
  • Sets and Relationships
  • Examining SQL Queries
  • Adding a Search Display Controller
  • Setting a Fetch Predicate
  • Modifying the Search Predicate
  • Adding a Search Scope Bar Filter
  • Summary
  • 8. Migration and Versioning
  • The Migration Problem
  • Changing the Data Model
  • Multiple Data Model Versions and Lightweight Migration
  • Creating Data Model Versions
  • Enabling Lightweight Migration
  • Renaming Entities and Attributes
  • Supplying Renaming Identifiers
  • Keeping Track of Multiple Versions
  • Mapping Models
  • Custom Entity Migration Policies
  • Summary
  • 9. Working with Multiple View Controllers and Undo
  • Editing Managed Objects
  • Keeping Track of the Managed Object to Edit
  • Updating a Managed Object's Properties
  • Validating Managed Objects
  • Working with Undo
  • Multiple Managed Object Contexts
  • Merging Changes from Other Managed Object Contexts
  • Changing Managed Object Values Whenever the Control Values
  • Change
  • Resetting a Managed Object Context
  • Using the Editor Controller to Add New Objects
  • Summary
  • Part III. Building a Simple Core Data Application
  • 10. Sample Application: Note Collector
  • The Note Collector Application
  • Creating the Note Collector Project
  • The Application Data Model
  • Modeling an Abstract Entity
  • Modeling Sub-entities
  • Creating Managed Object Class Files
  • Configuring the RootViewController
  • Displaying the Contents of a Collection
  • Keeping Track of the Collection to be Displayed
  • Examining the Contents of a Raw Data File
  • Setting and Editing an Item Name
  • Creating the New View Controller
  • Displaying and Editing Notes
  • Supplying a Pre-Populated Data Store
  • Working with a Data Store in the Application Bundle
  • Summary
  • Part IV. Optimizing and Troubleshooting
  • 11. Optimizing for iOS Performance and Memory Requirements
  • Performance, Optimization, and Speed
  • Data Store Types
  • Binary and Memory Data Stores
  • SQLite Data Store
  • Monitoring SQLite Stores
  • Optimizing Fetching
  • Setting Fetch Limits
  • Optimizing Predicates
  • Pre-Fetching Relationships
  • Pre-Fetching Any Object
  • Pre-Loading Property Values
  • NSFetchedResultsController and Sections
  • Managing Faulting
  • "Safe" Fault-Free Methods
  • Preventing Property Loading
  • Batch Faulting
  • Re-faulting Objects
  • Managing BLOBs
  • Putting BLOBs in the Entity That Uses Them
  • Putting BLOBs in a Separate Entity
  • Putting BLOBs in External Files
  • Monitoring Core Data with Instruments
  • When Not to Use Core Data
  • Other Memory Management Tips
  • Don't Use an Undo Manager If You Don't Need It
  • Resetting the Managed Object Context
  • Summary
  • 12. Troubleshooting Core Data
  • Your First Core Data Error
  • The Missing Model
  • Classes Not Found?
  • Core Data Threading Issues
  • Basics of Core Data Multithreading
  • Coordinating Data Between Threads
  • When Threads Collide, or Handling Data Conflicts
  • Danger! Temporary ID!
  • Problems Using Managed Objects
  • Crashing When Setting Property Values
  • If Custom Accessor Methods Aren't Called
  • Managed Object Invalidated
  • Faults That Can't Be Fulfilled
  • Problems Fetching Objects
  • Trouble Sorting Data During Fetches
  • Fetch Results Not Showing Recent Changes
  • Summary
  • Index