Symbols
! (logical NOT) operator,
if/else
!= (not equal) operator,
if/else
" escape sequence,
char
#define,
Constants
vs. global variables, #define vs global variables
#import,
#include and #import
#include,
#include and #import
% (modulus operator),
Integer division
(see also tokens)
%= operator,
Operator shorthand
%@,
Creating the Asset class
%d,
printf()
%e,
Tokens for displaying floating-point numbers
%p,
Getting addresses
%s,
printf()
%u,
Tokens for displaying integers
%zu,
How many bytes?
& operator, retrieving addresses,
Getting addresses
&& (logical AND) operator,
if/else
() (parentheses)
cast operators, using, Integer division
functions and, How do I write and use a function?, How functions work together
* (asterisk)
arithmetic operator, Integer operations
pointer operator, Getting the data at an address
*= operator,
Operator shorthand
+ (plus sign),
Integer operations
++ (increment operator),
Operator shorthand
+= operator,
Operator shorthand- (minus sign),
Integer operations
-- (decrement operator),
Operator shorthand
-= operator,
Operator shorthand
-> (dereference) operator,
The Heap
.pch (pre-compiled header),
#include and #import
/ (division operator),
Integer division
/* ... */ (comments),
Where do I start writing code?
// (comments),
Where do I start writing code?
/= operator,
Operator shorthand
8-bit unsigned numbers,
Integers
; (semicolon),
Where do I start writing code?
blocks and, Assigning a block
do-while loop and, The do-while loop
< (less than) operator,
if/else
< > (angle brackets), importing header files,
#include and #import
<< operator,
Left-shift
<= operator,
if/else
= operator,
A program with variables,
if/else
== operator,
if/else> (greater than) operator,
if/else
>= operator,
if/else
>> operator,
Right-shift
? (ternary operator),
For the More Curious: Conditional (ternary) operator
@property,
Properties
@selector(),
Target-action
@synthesize,
Properties
(backslash),
char
,
printf()
\ escape sequence,
char
^ (caret)
exclusive-or operator, Exclusive OR
identifying blocks, Defining blocks
{ } (curly braces),
Where do I start writing code?|| (logical OR) operator,
if/else
~ (tilde),
Complement
A
abs(),
Operator shorthand
accessor methods,
Accessor methods
properties and, Properties
actions (target),
Callbacks
addObject:,
NSArray/NSMutableArray
addresses,
Addresses and Pointers
pointers and, Types
alloc,
Nesting message sends,
init
ampersand (&), retrieving addresses,
Getting addresses
AND (&&) logical operator,
if/else
AND (bitwise),
Bitwise-AND
angle brackets (< >), importing header files,
#include and #import
anonymous
blocks, Anonymous block
functions, Blocks
Apple Developer Tools, installing,
Your First Program
application:didFinishLaunchingWithOptions:,
The application delegate,
Adding new tasks,
For the More Curious: What about main()?
applications
(see also programs, Xcode)
Cocoa, Your First Cocoa Application
Cocoa Touch, Your First iOS Application
desktop, Your First Cocoa Application
document-based, Edit BNRDocument.h
event-driven, Event-Driven Applications
iOS, Your First iOS Application
vs. programs, Getting started with Xcode
ARC (Automatic Reference Counting),
Object ownership and ARC
arguments
command-line, Command-Line Arguments
functions, How do I write and use a function?
init, init methods that take arguments
methods, Multiple arguments
arrays,
NSArray
in C, C Arrays
filtering, Filtering
sorting, Sorting
ASCII characters,
Writing an NSString to a file,
char
assembly code,
C and Objective-C
asterisk (*)
arithmetic operator, Integer operations
pointer operator, Getting the data at an address
AT&T,
C and Objective-C
atoi(),
Command-Line Arguments
atomic option,
Advice on atomic vs. nonatomic
attributes inspector,
Edit BNRDocument.xib
Automatic Reference Counting (ARC),
Object ownership and ARC
automatic variables,
The Heap
autosizing mask,
Edit BNRDocument.xib
B
backslash (),
char
base-16 (hexadecimal)
integers, Tokens for displaying integers
number system, Bitwise Operations
base-8 (octal) integers,
Tokens for displaying integers
bits,
Addresses and Pointers
bitwise AND,
Bitwise-AND
bitwise operations,
Bitwise Operations
bitwise OR,
Bitwise-OR
__block keyword,
Memory management
blocking (functions),
How functions work together
blocks,
Blocks
anonymous, Anonymous block
defining, Defining blocks
return values of, Return values
variables, Defining blocks
BOOL (type),
Boolean variables
boolean variables,
Boolean variables
break statement,
break
breakpoint navigator,
Looking at the frames in the debugger
breakpoints,
Looking at the frames in the debugger
buffers,
The Heap
bugs,
Recursion
building programs,
How do I run my program?
bytes,
Addresses and Pointers,
Bitwise Operations
C
C programming language,
C and Objective-C,
How this book works
arrays, C Arrays
primitive types, C primitive types
strings, C Strings
callbacks,
Callbacks,
Blocks
memory management and, Callbacks and object ownership
calling functions,
How do I write and use a function?
captured variables,
Memory management
caret (^)
exclusive-or operator, Exclusive OR
identifying blocks, Defining blocks
cast operator,
Integer division
Central Processing Unit (CPU),
Addresses and Pointers
char (type),
Types,
char
as 8-bit number, Integers
char * (type),
printf()
class methods,
More Messages
class prefixes,
Getting started with iTahDoodle
classes,
Objects,
Your First Class
(see also objects, individual class names)
closures,
Blocks
Cocoa,
Event-Driven Applications,
Your First Cocoa Application
Cocoa Touch,
Event-Driven Applications
code completion,
Where do I start writing code?
collection classes,
Collection Classes
(see also arrays)
command-line arguments,
Command-Line Arguments
command-line tools
in C, Getting started with Xcode
defined, Getting started with Xcode
Foundation, Creating and using your first object
compilers,
C and Objective-C,
So what is a program?
complements,
Complement
conditional expressions,
if/else,
For the More Curious: Conditional (ternary) operator
constants,
Constants
continue statement,
continue
controller objects (MVC),
Model-View-Controller
controls,
Adding new tasks
convenience methods,
Retain count rules
copy (method),
copy,
More about copying
copy (property attribute),
copy
copyWithZone:,
copy
count (NSArray),
NSArray
Cox, Brad,
Objects
CPU (Central Processing Unit),
Addresses and Pointers
curly braces ({ }),
Where do I start writing code?
D
daemons,
Getting started with Xcode
data sources,
Callbacks
data types,
Types
dateByAddingTimeInterval:,
Message anatomy
dealloc,
Creating the Asset class
debug navigator,
Looking at the frames in the debugger
debugger,
Recursion
frames, Looking at the frames in the debugger
GDB/LLDB, How do I run my program?
declaring
instance variables, Your First Class
methods, Your First Class
variables, Types
decrement operator (--),
Operator shorthand
#define,
Constants
vs. global variables, #define vs global variables
delegates,
Callbacks
dereference (->) operator,
The Heap
dereferencing pointers,
Getting the data at an address
description method,
Creating the Asset class
designated initializers,
init methods that take arguments
developer documentation,
Developer Documentation
dictionaries,
NSDictionary/NSMutableDictionary
directories, writing files to,
NSError
division (integers),
Integer division
do-while loop,
The do-while loop
document outline,
Making connections
document-based applications,
Edit BNRDocument.h
documentation,
Developer Documentation
dot notation,
Dot notation
double (type),
Types
double-quote escape sequence ("),
char
Dreaming in Code (Rosenberg),
How the life of a programmer works
E
else,
if/else
else if,
else if
encodings (string),
Writing an NSString to a file
enum,
enum
bit masks, defining, Using enum to define bit masks
enumerateObjectsUsingBlock:,
Passing in a block
equal objects,
NSSet/NSMutableSet
error objects,
NSError
errors, syntax,
Where do I start writing code?
escape sequences,
char
event-driven applications,
Event-Driven Applications
events,
Callbacks,
Your First iOS Application
exclusive-or (XOR),
Exclusive OR
EXC_BAD_ACCESS signal,
String literals
EXIT_FAILURE,
return
EXIT_SUCCESS,
return
exponents,
Floating-point numbers
expressions,
A program with variables
conditional, if/else, For the More Curious: Conditional (ternary) operator
external variables,
Memory management
F
%f,
Tokens for displaying floating-point numbers
fast enumeration,
NSArray
files
NSData and, Writing an NSData object to a file
NSError and, NSError
reading, Reading files with NSString
writing to, Writing Files with NSString and NSData
filtering,
Filtering
first responder,
Adding new tasks
flags (bitwise operators),
Bitwise-AND
float (type),
Types
casting and, Integer division
floating-point numbers,
Floating-point numbers
for loop,
The for loop
NSArray and, NSArray
format string,
printf(),
Tokens for displaying integers,
Tokens for displaying floating-point numbers,
Creating the Asset class
Foundation (framework),
Objective-C and Foundation,
Reference pages,
Event-Driven Applications
Foundation.h header file,
BNRAppDelegate
frames,
Local variables, frames, and the stack,
Looking at the frames in the debugger
frameworks,
Objective-C and Foundation,
Event-Driven Applications
free(),
The Heap
functions,
Functions
(see also methods)
arguments and, How do I write and use a function?
benefits of using, When should I use a function?, How do I write and use a function?
blocking, How functions work together
calling, How do I write and use a function?, How functions work together
declaring, How do I write and use a function?
defined, Where do I start writing code?
defining, How do I write and use a function?
explained, So what is a program?
frames of, Local variables, frames, and the stack
local variables, Local variables, frames, and the stack
in math.h, Functions for floating-point numbers
names of, Where do I start writing code?, How functions work together
parameters of, How do I write and use a function?, Local variables, frames, and the stack
pass-by-reference, Writing pass-by-reference functions
in programs, How functions work together
recipe metaphor for, So what is a program?
recursive, Recursion
return values of, return
writing, How do I write and use a function?
H
.h (header files),
Your First Class
header files,
#include and #import
header files (.h),
Your First Class
heap,
The Heap
heap-based blocks,
Memory management
helper functions,
Adding a C helper function
helper objects,
Callbacks,
Helper objects
hexadecimal (base-16)
integers, Tokens for displaying integers
number system, Bitwise Operations
high-level languages,
C and Objective-C
Human Interface Guidelines (HIG),
Edit BNRDocument.xib
I
id (type),
id
identical objects,
NSSet/NSMutableSet
if construct,
if/else
immutable objects,
Immutable objects
implementation files (.m),
Your First Class
#import,
#include and #import
#include,
#include and #import
increment operator (++),
Operator shorthand
inheritance,
Inheritance
init,
Nesting message sends,
init,
Using accessors
initializers,
init,
init methods that take arguments
instance methods,
More Messages
instance variables,
Objects,
Your First Class
inheritance and, Inheritance
object, Object Instance Variables
instances,
Objects
instantiate (objects),
NSError
int (type),
Types,
Boolean variables,
Integers
casting and, Integer division
integers,
Integers
Integrated Development Environment,
Getting started with Xcode
Interface Builder,
A look at Interface Builder
interface files (.h),
Your First Class
interface, setting up
in Interface Builder, A look at Interface Builder
programmatically, Setting up views
iOS
applications, Your First iOS Application
Cocoa Touch and, Event-Driven Applications
memory management in, Adding a to-many relationship to Employee
Objective-C and, C and Objective-C
simulator, Running on the iOS simulator
isEqual:,
NSString,
NSSet/NSMutableSet
iteration (arrays),
NSArray
L
labs(),
Operator shorthand
lambdas,
Blocks
left-shifting bits,
Left-shift
libraries,
How functions work together
LLDB debugger,
How do I run my program?
local variables,
Local variables, frames, and the stack,
The Heap
log navigator,
How do I run my program?
logical operators,
if/else
long (type),
Types,
Integers
long long (type),
Integers
loops,
Loops
for, The for loop
while, The while loop
Love, Tom,
Objects
M
.m files,
Creating and using your first object,
Your First Class
machine code,
C and Objective-C
macros,
#define
Mac OS X,
C and Objective-C
(see also Cocoa)
main(),
Where do I start writing code?,
How do I write and use a function?,
Looking at the frames in the debugger,
For the More Curious: What about main()?
malloc(),
The Heap,
String literals,
C Arrays
manual reference counting,
For the More Curious: Manual reference counting and ARC History
math.h header file,
Functions for floating-point numbers
memory
heap, The Heap
objects in, Objects in memory
stack, Local variables, frames, and the stack
memory addresses,
Addresses and Pointers
memory leaks,
Adding a to-many relationship to Employee,
Preventing Memory Leaks,
Retain cycles
memory management
Automatic Reference Counting (ARC), Object ownership and ARC
blocks and, Memory management
in C, The Heap
callbacks and, Callbacks and object ownership
deallocating objects and, Object Instance Variables
local variables and, The Heap
manual reference counting, For the More Curious: Manual reference counting and ARC History
property attributes and, Lifetime specifiers
retain cycles, Retain cycles
weak references and, Weak references
messages,
More Messages
anatomy of, Message anatomy
nesting, Nesting message sends
objects and, Objects
sending to nil, Sending messages to nil
methods,
Objects
(see also functions)
accessor, Accessor methods
convenience, Retain count rules
declaring, Your First Class
overriding, Overriding methods
minus sign (-),
Integer operations
model objects (MVC),
Model-View-Controller
Model-View-Controller (MVC),
Model-View-Controller,
Revisiting MVC
modf(),
Pass By Reference
modulus (%) operator,
Integer division
mutableCopy,
copy,
More about copying
MVC (Model-View-Controller),
Model-View-Controller,
Revisiting MVC
M_PI constant,
Constants
N
nesting messages,
Nesting message sends
newline character (
),
printf(),
char
NeXTSTEP (NS),
Getting started with iTahDoodle
nil,
Sending messages to nil,
Immutable objects,
Collections and nil
nonatomic option,
Advice on atomic vs. nonatomic
NOT (!) logical operator,
if/else
notifications (callbacks),
Callbacks,
Notifications
NS (NeXTSTEP),
Getting started with iTahDoodle
NSArray,
NSArray,
NSArray/NSMutableArray
filtering, Filtering
immutable objects and, Immutable objects
property lists and, Property Lists
sorting, Sorting
NSAttributedString,
Immutable objects
NSCharacterSet,
Immutable objects
NSData,
Immutable objects
property lists, Property Lists
reading from files, Reading an NSData from a file
writing to files, Writing an NSData object to a file
NSDataWritingAtomic option (NSData),
Writing an NSData object to a file
NSDate,
Message anatomy
property lists and, Property Lists
NSDictionary,
Immutable objects,
NSDictionary/NSMutableDictionary
property lists and, Property Lists
NSError,
NSError
NSIndexSet,
Immutable objects
NSInteger (type),
Integers
NSLocale,
Global variables
NSLog(),
Creating and using your first object
vs. printf(), NSString
NSMutableArray,
NSMutableArray,
Object ownership and ARC,
NSArray/NSMutableArray,
Immutable objects
sorting, Sorting
UIKit.h and, BNRAppDelegate
NSMutableAttributedString,
Immutable objects
NSMutableDictionary,
NSDictionary/NSMutableDictionary
NSMutableSet,
NSSet/NSMutableSet
NSMutableString,
Immutable objects
NSNull,
Collections and nil
NSNumber,
Immutable objects,
C primitive types
property lists and, Property Lists
NSObject,
Inheritance,
Creating the Asset class
init and, init
key-value coding and, Key-value coding
NSPredicate,
Filtering
NSRunLoop,
Callbacks
NSScrollView,
Edit BNRDocument.xib
NSSearchPathForDirectoriesInDomains(),
Adding a C helper function
NSSet,
Immutable objects,
NSSet/NSMutableSet
NSString,
NSString,
Immutable objects
(see also strings)
property, Property Lists
reading files with, Reading files with NSString
writing to files, Writing an NSString to a file
NSTableView,
Your First Cocoa Application,
Edit BNRDocument.xib
NSUInteger (type),
Integers
NSURLConnection,
Helper objects
NSURLRequest,
Immutable objects
NSValue,
C primitive types
NULL,
NULL,
Avoid dereferencing NULL
numbers
(see also floating-point numbers, integers)
hexadecimal, Tokens for displaying integers, Bitwise Operations
octal, Tokens for displaying integers
O
object encapsulation,
Key-value coding
object library,
Edit BNRDocument.xib
object ownership,
Object ownership and ARC
object-type attributes,
Object Instance Variables
objectAtIndex: (NSArray),
NSArray
Objective-C,
C and Objective-C
objects,
Objects
deallocating, Object Instance Variables
immutable, Immutable objects
inheritance and, Inheritance
as instance variables, Object Instance Variables
relationships between, Object Instance Variables
octal (base-8) integers,
Tokens for displaying integers
operators (comparison/logical),
if/else
OR (bitwise),
Bitwise-OR
OR (||) logical operator,
if/else
overriding methods,
Overriding methods
P
parameters,
How do I write and use a function?,
Local variables, frames, and the stack
parent-child relationships (objects),
Object ownership and ARC
memory leaks and, Preventing Memory Leaks
parentheses (())
cast operator, Integer division
functions and, How do I write and use a function?, How functions work together
pass-by-reference,
Pass By Reference,
NSError
plus sign (+),
Integer operations
pointers,
Types,
Addresses and Pointers
function, Blocks
NSMutableArray and, NSMutableArray
objects and, Message anatomy
storing addresses in, Storing addresses in pointers
PostgreSQL database,
C Strings
pre-compiled header files,
#include and #import
precedence, for arithmetic operators,
Integer operations
predicates,
Filtering
preprocessor,
Preprocessor directives
preprocessor directives,
Preprocessor directives
primitive types (C),
C primitive types
printf(),
So what is a program?,
How functions work together,
printf(),
Tokens for displaying floating-point numbers
vs. NSLog(), NSString
profiling programs,
Retain cycles
programming languages,
C and Objective-C
programs
building, How do I run my program?
compiling, So what is a program?
defined, So what is a program?
profiling, Retain cycles
running, How do I run my program?, A program with variables
vs. applications, Getting started with Xcode
project navigator,
How do I run my program?
projects, creating,
Getting started with Xcode
properties,
Properties,
Properties
attributes, Property attributes
@property,
Properties
property lists,
Property Lists
protocols,
Helper objects,
Protocols
R
RAM (Random-Access Memory),
Addresses and Pointers
readonly (property attribute),
Mutability
readwrite (property attribute),
Mutability
receivers (objects),
Message anatomy
recipe metaphor (functions),
So what is a program?
recursion,
Recursion
references
NSError and, NSError
pass by, Pass By Reference
resignFirstResponder,
Adding new tasks
retain counts,
For the More Curious: Manual reference counting and ARC History,
Retain count rules
retain cycles,
Retain cycles
return,
return
in blocks, Return values
right-shifting bits,
Right-shift
S
@selector(),
Target-action
selectors,
Target-action
self,
self,
Adding new tasks
semicolon (;),
Where do I start writing code?
blocks and, Assigning a block
do-while loops and, The do-while loop
setter methods,
Accessor methods
property attributes and, Mutability
setValue:forKey:,
Key-value coding
shell,
Command-Line Arguments
short (type),
Types
shortcuts, keyboard,
A program with variables,
Creating the Asset class,
Edit BNRDocument.xib
simulator (iOS),
Running on the iOS simulator
sizeof(),
How many bytes?
sleep(),
How functions work together,
Retain cycles
sorting,
Sorting
springs (autosizing mask),
Edit BNRDocument.xib
stack,
Local variables, frames, and the stack
stack-based blocks,
Memory management
standard libraries,
How functions work together
static variables,
Global and static variables
stdio.h header file,
How functions work together
stdlib.h header file,
How functions work together
string encodings,
Writing an NSString to a file
strings,
NSString
in C, C Strings
defined, printf()
literals, String literals
printf() and, printf()
stringWithFormat:,
NSString
strlen(),
char *
strong (property attribute),
Lifetime specifiers
struct (type),
Types,
Structs
structures,
Types,
Structs
struts (autosizing mask),
Edit BNRDocument.xib
subclasses,
NSMutableArray
subviews,
Setting up views
super directive,
super
syntax errors,
Where do I start writing code?
syntax, code,
Where do I start writing code?
@synthesize,
Properties
synthesizing accessor methods,
Properties
T
escape sequence,
char
table views,
Wiring up the table view,
Edit BNRDocument.xib
target-action callbacks,
Callbacks
templates, choosing,
Getting started with Xcode,
Getting started with iTahDoodle
Terminal,
Command-Line Arguments
ternary operator (?),
For the More Curious: Conditional (ternary) operator
tilde (~),
Complement
timers, using target-action mechanisms,
Target-action
to-many relationships,
Object Instance Variables
to-one relationships,
Object Instance Variables,
Preventing Memory Leaks
tokens
description, Creating the Asset class
explained, printf()
floating-point number, Tokens for displaying floating-point numbers
integer, Tokens for displaying integers
pointer, Getting addresses
string, printf()
typedef keyword,
Structs,
typedef
types,
Types
U
UIButton,
Adding new tasks
UIKit.h header file,
BNRAppDelegate
UITableView,
Protocols
UITableViewDataSource,
Wiring up the table view
UNICODE standards,
NSString
Unix,
C and Objective-C
unsafe_unretained (property attribute),
Lifetime specifiers
unsigned 8-bit numbers,
Integers
unsigned keyword,
Integers
__unused modifier,
Target-action
user interface, setting up
in Interface Builder, A look at Interface Builder
programmatically, Setting up views
UTF strings,
Writing an NSString to a file
V
valueForKey:,
Key-value coding
variables,
Variables and Types
assigning, A program with variables
automatic, The Heap
block, Defining blocks
boolean, Boolean variables
captured, Memory management
declaring, Types, A program with variables, Your First Class
external, Memory management
global, Global and static variables, Global variables
instance, Objects, Object Instance Variables
local, Local variables, frames, and the stack
self, self
static, Global and static variables
view objects (MVC),
Model-View-Controller
views, setting up
in Interface Builder, A look at Interface Builder
programmatically, Setting up views
void,
How do I write and use a function?,
return
X
Xcode
attributes inspector, Edit BNRDocument.xib
breakpoint navigator, Looking at the frames in the debugger
building programs in, How do I run my program?
code completion, Where do I start writing code?
color-coding in, Where do I start writing code?
creating classes in, Your First Class
debug navigator, Looking at the frames in the debugger
developer documentation in, Developer Documentation
installing, Installing Apple’s developer tools
keyboard shortcuts, A program with variables, Creating the Asset class, Edit BNRDocument.xib
log navigator, How do I run my program?
preferences, Where do I start writing code?
project navigator, How do I run my program?
Quick Help, Quick Help
running programs, A program with variables
running programs in, How do I run my program?
templates, Getting started with Xcode
warnings in, How do I write and use a function?
.xib (XML Interface Builder) files,
A look at Interface Builder
XOR (exclusive-or),
Exclusive OR