Author(s): S. Kochan
Edition: 4th ed.
Publisher: Pearson
Year: 2012
Language: English
Pages: 562
Contents......Page 8
1 Introduction......Page 18
What You Will Learn from This Book......Page 19
How This Book Is Organized......Page 20
Acknowledgments......Page 22
Preface to the Fourth Edition......Page 23
Compiling and Running Programs......Page 24
Using Xcode......Page 25
Using Terminal......Page 34
Explanation of Your First Program......Page 36
Displaying the Values of Variables......Page 40
Exercises......Page 42
What Is an Object, Anyway?......Page 44
Instances and Methods......Page 45
An Objective-C Class for Working with Fractions......Page 47
The @interface Section......Page 50
Choosing Names......Page 51
Class and Instance Methods......Page 52
The @implementation Section......Page 54
The program Section......Page 56
Accessing Instance Variables and Data Encapsulation......Page 62
Exercises......Page 66
Type int......Page 68
Type char......Page 69
Qualifiers: long, long long, short, unsigned, and signed......Page 70
Type id......Page 71
Operator Precedence......Page 72
Integer Arithmetic and the Unary Minus Operator......Page 75
The Modulus Operator......Page 77
Integer and Floating-Point Conversions......Page 78
The Type Cast Operator......Page 80
Assignment Operators......Page 81
A Calculator Class......Page 82
Exercises......Page 84
5 Program Looping......Page 88
The for Statement......Page 89
Keyboard Input......Page 96
Nested for Loops......Page 98
For Loop Variants......Page 100
The while Statement......Page 101
The do Statement......Page 105
The continue Statement......Page 107
Exercises......Page 108
The if Statement......Page 110
The if-else Construct......Page 115
Compound Relational Tests......Page 117
Nested if Statements......Page 120
The else if Construct......Page 122
The switch Statement......Page 131
Boolean Variables......Page 134
The Conditional Operator......Page 139
Exercises......Page 141
Separate Interface and Implementation Files......Page 144
Synthesized Accessor Methods......Page 149
Accessing Properties Using the Dot Operator......Page 151
Multiple Arguments to Methods......Page 152
Operations on Fractions......Page 154
Local Variables......Page 157
The static Keyword......Page 158
The self Keyword......Page 162
Allocating and Returning Objects from Methods......Page 163
Exercises......Page 165
It All Begins at the Root......Page 168
Finding the Right Method......Page 172
Extension Through Inheritance: Adding New Methods......Page 173
A Point Class and Object Allocation......Page 177
The @class Directive......Page 178
Classes Owning Their Objects......Page 182
Overriding Methods......Page 186
Which Method Is Selected?......Page 188
Abstract Classes......Page 190
Exercises......Page 191
Polymorphism: Same Name, Different Class......Page 194
Dynamic Binding and the id Type......Page 197
Compile Time Versus Runtime Checking......Page 199
The id Data Type and Static Typing......Page 200
Argument and Return Types with Dynamic Typing......Page 201
Asking Questions About Classes......Page 202
Exception Handling Using @try......Page 206
Exercises......Page 209
Initializing Objects......Page 212
Directives for Controlling Instance Variable Scope......Page 215
Global Variables......Page 217
Static Variables......Page 219
Enumerated Data Types......Page 222
The typedef Statement......Page 225
Data Type Conversions......Page 226
Conversion Rules......Page 227
Bit Operators......Page 228
The Bitwise AND Operator......Page 229
The Bitwise Inclusive-OR Operator......Page 230
The Ones Complement Operator......Page 231
The Right Shift Operator......Page 233
Exercises......Page 234
Categories......Page 236
Class Extensions......Page 241
Some Notes About Categories......Page 242
Protocols and Delegation......Page 243
Informal Protocols......Page 246
Composite Objects......Page 247
Exercises......Page 248
The #define Statement......Page 250
More Advanced Types of Definitions......Page 252
The #import Statement......Page 257
The #ifdef, #endif, #else......Page 258
The #if and #elif Preprocessor Statements......Page 260
The #undef Statement......Page 261
Exercises......Page 262
13 Underlying C Language Features......Page 264
Arrays......Page 265
Initializing Array Elements......Page 267
Character Arrays......Page 268
Multidimensional Arrays......Page 269
Functions......Page 271
Arguments and Local Variables......Page 272
Returning Function Results......Page 274
Functions, Methods, and Arrays......Page 278
Blocks......Page 279
Structures......Page 283
Initializing Structures......Page 286
Structures Within Structures......Page 287
Additional Details About Structures......Page 289
Pointers......Page 290
Pointers and Structures......Page 294
Pointers, Methods, and Functions......Page 296
Pointers and Arrays......Page 297
Constant Character Strings and Pointers......Page 303
Operations on Pointers......Page 307
Pointers and Memory Addresses......Page 309
Compound Literals......Page 310
The Comma Operator......Page 311
The sizeof Operator......Page 312
Command-Line Arguments......Page 313
Fact #1: Instance Variables Are Stored in Structures......Page 315
Fact #4: The id Type Is a Generic Pointer Type......Page 316
Exercises......Page 317
Foundation Documentation......Page 320
Number Objects......Page 324
More on the NSLog Function......Page 329
The description Method......Page 330
Mutable Versus Immutable Objects......Page 331
Mutable Strings......Page 337
Array Objects......Page 344
Making an Address Book......Page 347
Sorting Arrays......Page 364
Dictionary Objects......Page 371
Enumerating a Dictionary......Page 372
Set Objects......Page 375
NSIndexSet......Page 379
Exercises......Page 382
16 Working with Files......Page 386
Managing Files and Directories: NSFileManager......Page 387
Working with the NSData Class......Page 392
Working with Directories......Page 393
Enumerating the Contents of a Directory......Page 396
Working with Paths: NSPathUtilities.h......Page 398
Common Methods for Working with Paths......Page 400
Copying Files and Using the NSProcessInfo Class......Page 403
Basic File Operations: NSFileHandle......Page 407
The NSURL Class......Page 412
The NSBundle Class......Page 413
Exercises......Page 414
17 Memory Management and Automatic Reference Counting......Page 416
Automatic Garbage Collection......Page 418
Manual Reference Counting......Page 419
Object References and the Autorelease Pool......Page 420
The Event Loop and Memory Allocation......Page 422
Summary of Manual Memory Management Rules......Page 424
Strong Variables......Page 425
Weak Variables......Page 426
@autoreleasepool Blocks......Page 427
Method Names and Non-ARC Compiled Code......Page 428
The copy and mutableCopy Methods......Page 430
Shallow Versus Deep Copying......Page 433
Implementing the Protocol......Page 435
Copying Objects in Setter and Getter Methods......Page 438
Exercises......Page 440
Archiving with XML Property Lists......Page 442
Archiving with NSKeyedArchiver......Page 444
Writing Encoding and Decoding Methods......Page 446
Using NSData to Create Custom Archives......Page 453
Using the Archiver to Copy Objects......Page 456
Exercises......Page 458
Framework Layers......Page 460
Cocoa Touch......Page 461
Your First iPhone Application......Page 464
Creating a New iPhone Application Project......Page 466
Entering Your Code......Page 469
Designing the Interface......Page 472
An iPhone Fraction Calculator......Page 478
Starting the New Fraction_Calculator Project......Page 479
Defining the View Controller......Page 481
The Fraction Class......Page 486
A Calculator Class That Deals with Fractions......Page 490
Designing the UI......Page 491
Summary......Page 492
Exercises......Page 493
A......Page 496
C......Page 497
F......Page 498
I......Page 499
P......Page 500
S......Page 501
Z......Page 502
B: Address Book Example Source Code......Page 504
Index......Page 510
A......Page 511
C......Page 515
D......Page 521
E......Page 525
F......Page 526
G......Page 531
I......Page 532
L......Page 537
M......Page 538
N......Page 544
O......Page 546
P......Page 548
R......Page 552
S......Page 554
U......Page 558
V......Page 559
X......Page 560
Z......Page 561