內容簡介
本書是為在蘋果iOS 和OS X 平台上,使用Objective-C 語言和面向對象程式設計模式進行專業開發而編寫的簡潔、細緻的入門讀物。本書假設讀者無面向對象程式語言或C 語言編程經驗,以保障初學者與有經驗的程式設計師一樣,可用本書迅速和有效地學習Objective-C。本書提供的學習方法獨特,配有眾多程式示例及章末練習,適合自學和課堂教學。第6 版已全面更新,充分納入Objective-C 的新功能與技術,同時覆蓋對新版Xcode、iOS 和Mac OS X Mavericks 的介紹。
內容提要
本書是為在蘋果iOS 和OS X 平台上,使用Objective-C 語言和面向對象程式設計模式進行專業開發而編寫的簡潔、細緻的入門讀物。本書假設讀者無面向對象程式語言或C 語言編程經驗,以保障初學者與有經驗的程式設計師一樣,可用本書迅速和有效地學習Objective-C。本書提供的學習方法獨特,配有眾多程式示例及章末練習,適合自學和課堂教學。第6 版已全面更新,充分納入Objective-C 的新功能與技術,同時覆蓋對新版Xcode、iOS 和Mac OS X Mavericks 的介紹。
目錄
1 Introduction
What You Will Learn from This Book
How This Book Is Organized
Support
Acknowledgments
Preface to the Sixth Edition
I: The Objective-C Language
2 Programming in Objective-C
Compiling and Running Programs
Using Xcode
Using Terminal
Explanation of Your First Program
Displaying the Values of Variables
Summary
Exercises
3 Classes, Objects, and Methods
What Is an Object, Anyway?
Instances and Methods
An Objective-C Class for Working with Fractions
The @interface Section
Choosing Names
Class and Instance Methods
The @implementation Section
The program Section
Accessing Instance Variables and Data Encapsulation
Summary
Exercises
4 Data Types and Expressions
Data Types and Constants
Type int
Type float
Type char
Qualifiers: long, long long, short, unsigned, and signed
Type id
Arithmetic Expressions
Operator Precedence
Integer Arithmetic and the Unary Minus Operator
The Modulus Operator
Integer and Floating-Point Conversions
The Type Cast Operator
Assignment Operators
A Calculator Class
Exercises
5 Program Looping
The for Statement
Keyboard Input
Nested for Loops
for Loop Variants
The while Statement
The do Statement
The break Statement
The continue Statement
Summary
Exercises
6 Making Decisions
The if Statement
The if-else Construct
Compound Relational Tests
Nested if Statements
The else if Construct
The switch Statement
Boolean Variables
The Conditional Operator
Exercises
7 More on Classes
Separate Interface and Implementation Files
Synthesized Accessor Methods
Accessing Properties Using the Dot Operator
Multiple Arguments to Methods
Methods without Argument Names
Operations on Fractions
Local Variables
Method Arguments
The static Keyword
The self Keyword
Allocating and Returning Objects from Methods
Extending Class Definitions and the Interface File
Exercises
8 Inheritance
It All Begins at the Root
Finding the Right Method
Extension through Inheritance: Adding New Methods
A Point Class and Object Allocation
The @class Directive
Classes Owning Their Objects
Overriding Methods
Which Method Is Selected?
Abstract Classes
Exercises
9 Polymorphism, Dynamic Typing, and Dynamic Binding
Polymorphism: Same Name, Different Class
Dynamic Binding and the id Type
Compile Time Versus Runtime Checking
The id Data Type and Static Typing
Argument and Return Types with Dynamic Typing
Asking Questions about Classes
Exception Handling Using @try
Exercises
10 More on Variables and Data Types
Initializing Objects
Scope Revisited
More on Properties, Synthesized Accessors, and Instance Variables
Global Variables
Static Variables
Enumerated Data Types
The typedef Statement
Data Type Conversions
Conversion Rules
Bit Operators
The Bitwise AND Operator
The Bitwise Inclusive-OR Operator
The Bitwise Exclusive-OR Operator
The Ones Complement Operator
The Left-Shift Operator
The Right-Shift Operator
Exercises
11 Categories and Protocols
Categories
Class Extensions
Some Notes about Categories
Protocols and Delegation
Delegation
Informal Protocols
Composite Objects
Exercises
12 The Preprocessor
The #define Statement
More Advanced Types of Definitions
The #import Statement
Conditional Compilation
The #ifdef , #endif , #else , and #ifndef Statements
The #if and #elif Preprocessor Statements
The #undef Statement
Exercises
13 Underlying C Language Features
Arrays
Initializing Array Elements
Character Arrays
Multidimensional Arrays
Functions
Arguments and Local Variables
Returning Function Results
Functions, Methods, and Arrays
Blocks
Structures
Initializing Structures
Structures within Structures
Additional Details about Structures
Don’t Forget about Object-Oriented Programming!
Pointers
Pointers and Structures
Pointers, Methods, and Functions
Pointers and Arrays
Operations on Pointers
Pointers and Memory Addresses
They’re Not Objects!
Miscellaneous Language Features
Compound Literals
The goto Statement
The Null Statement
The Comma Operator
The sizeof Operator
Command-Line Arguments
How Things Work
Fact 1: Instance Variables Are Stored in Structures
Fact 2: An Object Variable Is Really a Pointer
Fact 3: Methods Are Functions, and Message Expressions Are Function Calls
Fact 4: The id Type Is a Generic Pointer Type
Exercises
II: The Foundation Framework
14 Introduction to the Foundation Framework
Foundation Documentation
15 Numbers, Strings, and Collections
Number Objects
String Objects
More on the NSLog Function
The description Method
Mutable Versus Immutable Objects
Mutable Strings
Array Objects
Making an Address Book
Sorting Arrays
Dictionary Objects
Enumerating a Dictionary
Set Objects
NSIndexSet
Exercises
16 Working with Files
Managing Files and Directories: NSFileManager
Working with the NSData Class
Working with Directories
Enumerating the Contents of a Directory
Working with Paths: NSPathUtilities.h
Common Methods for Working with Paths
Copying Files and Using the NSProcessInfo Class
Basic File Operations: NSFileHandle
The NSURL Class
The NSBundle Class
Exercises
17 Memory Management and Automatic Reference Counting
Automatic Garbage Collection
Manual Reference Counting
Object References and the Autorelease Pool
The Event Loop and Memory Allocation
Summary of Manual Memory Management Rules
Automatic Reference Counting
Strong Variables
Weak Variables
@autoreleasepool Blocks
Method Names and Non-ARC Compiled Code
18 Copying Objects
The copy and mutableCopy Methods
Shallow Versus Deep Copying
Implementing the <NSCopying> Protocol
Copying Objects in Setter and Getter Methods
Exercises
19 Archiving
Archiving with XML Property Lists
Archiving with NSKeyedArchiver
Writing Encoding and Decoding Methods
Using NSData to Create Custom Archives
Using the Archiver to Copy Objects
Exercises
III: Cocoa, Cocoa Touch, and the iOS SDK
20 Introduction to Cocoa and Cocoa Touch
Framework Layers
Cocoa Touch
21 Writing iOS Applications
The iOS SDK
Your First iPhone Application
Creating a New iPhone Application Project
Entering Your Code
Designing the Interface
An iPhone Fraction Calculator
Starting the New Fraction_Calculator Project
Defining the View Controller
The Fraction Class
A Calculator Class That Deals with Fractions
Designing the User Interface
Summary
Exercises
Appendixes
A Glossary
B Address Book Example Source Code
Index