Core data for iOS : developing data-driven applications for the iPad, iPhone, and iPod touch /
Saved in:
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 |
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