Danny Goodman写了将近40本书和数以百计的在个人电脑以及消费性电子杂志上的文章。最近,他正在从事iPhone和iPod touch应用的开发工作,包括iFeltThat Earthquake、PhotoSize和BeaconAid-HF。
目录
Preface
1. Why Go Native?
Using an App Offline
More Access to the Hardware
More Access to the Software
What You Lose
Distribution
Apple iOS Developer Program
Content
Authoring Platform Choices
Taking the Plunge
2. Welcome to the iOS SDK
Hardware and OS Requirements
Installing the SDK
About iOS Developer Programs
Inside the SDK
Viewing Developer Documentation
Loading Code Samples
Setting the Project's Base SDK
Trying the iOS Simulator
Coming Up..
3. Creating a Test Workbench
Creating the Project in Xcode
Selecting a Project Type
Naming and Saving the New Project
Welcome to Your Project
Editing Your First Files
What the runMyCode: Method Does
Building the User Interface
Adding a Button to the View
Connecting the Button
Going for a Test Ride
Congratulations
4. Structural Overview of an iOS App
Where It All Begins: APIs
APIs You Already Know
The Cocoa Touch APIs
Frameworks
Foundation Framework
UIKit Framework
CoreGraphics Framework
Adding Frameworks
Frameworks Set in Stone
Welcome to Class Files
The JavaScript Way
The Objective-C Way
Header File Details
Using Xcode to Create DGCar Class Files
Editing the @interface Section
Message Passing
Editing the @implementation Section
Integrating the DGCar Class into Workbench
Creating Object Instances
NSLog0 and String Formats
Running the Code
What About Accessing Instance Variables?
Recap
5. App Execution Flow
Some C Language Roots in an iOS App
An Introduction to Delegates
How UIApplication Appoints Its Delegate
The App's Info.plist File
Inside MainWindow.xib
iPhone App Development Design Patterns
The Model-View-Controller Design Pattern
Other Design Patterns
The Importance of Views
The App Window--UIWindow
Adding Another View to Workbench
Recap
6. Central Objective-C Concepts: Pointers, Data Types, and Memory Management
107
Pointers
Pointers and Memory
Pointers and Objective-C Variables
Pointer Notation
Determining Pointer Usage
Data Typing
Objective-C Data Types
Cocoa Touch Data Types
Objective-C Variable Declarations
Objective-C Method Declarations
The id Data Type
Converting Objective-C Data Types
Memory Management
Cleaning Up After Yourself
The Retain Count
Autorelease Pools
Observing Memory Usage
Recap
7. C Language Fundamentals
Variable Names
Variable Scope
Instance Variables
Local Variables
Local Variables in Control Structure Blocks
Static Local Variables
Global Variables
Constant Values
Functions
C Structures
C Arrays
Enumerated Types
Operators
Program Flow Constructions
Boolean Values
Math Object Equivalents in C
Inserting Comments
Recap
8. Objective-C/Cocoa Touch Fundamentals
More About Classes
Temporary Objects
Subclassing Framework Classes
Defining Your Own Custom Subclasses
Adding to a Class Without Subclassing--Categories
Real Classes in Real Action
TheElements Overview
TheElements Class File Structure
Class Properties
Specifying Properties in the Header File
Synthesizing Properties in the Implementation File
Using Properties
Properties in Framework Classes
About NSString
Creating an NSString
JavaScript String Method Equivalents in Objective-C
NSMutableString
About NSArray
Creating an NSArray
Retrieving Array Elements
JavaScript Array Method Equivalents in Objective-C
NSMutableArray
About NSDictionary
Creating an NSDictionary
Retrieving Dictionary Entries
NSMutableDictionary
Arrays and Dictionaries in Action
Recap
9. Common JavaScript Tasks in Cocoa Touch
Formatting Numbers for Display
Preformatted Number Styles
Rounding Numbers for Display
Creating a Date Object
Adding a UIDatePicker to Workbench
Understanding NSDate
Creating a Date Object for a Specific Date
Extracting Components from an NSDate Object
Creating NSDate Objects from Strings
Converting an NSDate to a String
Calculating Dates
10 Days in the Future
Days Between Dates
Comparing Dates
Downloading Remote Files Asynchronously
Example Project
Creating the Request
Initializing the NSMutableData Object
Delegate Methods
Downloading Only When Needed
Accounting for Fast App Switching
Reading and Writing Local Files
lOS App Directories
Obtaining Directory Paths
Obtaining Paths to Files Delivered with Your App
Writing Files to Disk
Reading Files from Disk
Writing and Reading Property List Files
Performing File Management Tasks
Sorting Arrays
Sorting with a Selector
Sorting with a Function
Sorting Arrays of Dictionaries with NSSortDescriptor
Capturing User-Entered Text
The Code Portion
The Interface Builder Portion
Validating Text Entry with Regular Expressions
Modifying the Code
Modifying the User Interface
Using Regular Expressions for Text Search and Replace
Dragging a View Around the Screen
The Code Portion
The Interface Builder Portion
Recap
A. Getting the Most from Xcode Documentation
B. Common Beginner Xcode Compiler Errors
Glossary
Index