iOS 7 Programming Fundamentals, Table of Contents

Preface

I. Language

1. Just Enough C

Compilation, Statements, and Comments

Variable Declaration, Initialization, and Data Types

Structs

Pointers

Arrays

Operators

Flow Control and Conditions

Functions

Pointer Parameters and the Address Operator

Files

The Standard Library

More Preprocessor Directives

Data Type Qualifiers

2. Object-Based Programming

Objects

Messages and Methods

Classes and Instances

Class Methods

Instance Variables

The Object-Based Philosophy

3. Objective-C Objects and Messages

An Object Reference Is a Pointer

Instance References, Initialization, and nil

Instance References and Assignment

Instance References and Memory Management

Methods and Messages

Calling a Method

Declaring a Method

Nesting Method Calls

No Overloading

Parameter Lists

When Message Sending Goes Wrong

Messages to nil

Unrecognized Selectors

Typecasting and the id Type

Messages as Data Type

C Functions

CFTypeRefs

Blocks

4. Objective-C Classes

Subclass and Superclass

Interface and Implementation

Header File and Implementation File

Class Methods

The Secret Life of Classes

5. Objective-C Instances

How Instances Are Created

Ready-Made Instances

Instantiation from Scratch

Nib-Based Instantiation

Polymorphism

The Keyword self

The Keyword super

Instance Variables and Accessors

Key–Value Coding

Properties

How to Write an Initializer

Referring to Instances

II. IDE

6. Anatomy of an Xcode Project

New Project

The Project Window

The Navigator Pane

The Utilities Pane

The Editor

The Project File and Its Dependents

The Target

Build Phases

Build Settings

Configurations

Schemes and Destinations

Renaming Parts of a Project

From Project to Running App

Build Settings

Property List Settings

Nib Files

Additional Resources

Code and the App Launch Process

Frameworks and SDKs

7. Nib Management

A Tour of the Nib Editor Interface

The Document Outline

Canvas

Inspectors and Libraries

Nib Loading

Outlets and the Nib Owner

Creating an Outlet

Misconfiguring an Outlet

Deleting an Outlet

More Ways to Create Outlets

Outlet Collections

Action Connections

Additional Initialization of Nib-Based Instances

8. Documentation

The Documentation Window

Class Documentation Pages

Sample Code

Other Resources

Quick Help

Symbols

Header Files

Internet Resources

9. Life Cycle of a Project

Device Architecture and Conditional Code

Version Control

Editing Your Code

Autocompletion

Snippets

Fix-it and Live Syntax Checking

Navigating Your Code

Running in the Simulator

Debugging

Caveman Debugging

The Xcode Debugger

Unit Testing

Static Analyzer

Clean

Running on a Device

Obtaining a Certificate

Obtaining a Development Provisioning Profile

Running the App

Profile and Device Management

Gauges and Instruments

Localization

Archiving and Distribution

Ad Hoc Distribution

Final App Preparations

Icons in the App

Other Icons

Launch Images

Screenshots

Property List Settings

Submission to the App Store

III. Cocoa

10. Cocoa Classes

Subclassing

Categories

Splitting a Class

Class Extensions

Protocols

Informal Protocols

Optional Methods

Some Foundation Classes

Useful Structs and Constants

NSString and Friends

NSDate and Friends

NSNumber

NSValue

NSData

Equality and Comparison

NSIndexSet

NSArray and NSMutableArray

NSSet and Friends

NSDictionary and NSMutableDictionary

NSNull

Immutable and Mutable

Property Lists

The Secret Life of NSObject

11. Cocoa Events

Reasons for Events

Subclassing

Notifications

Receiving a Notification

Unregistering

Posting a Notification

NSTimer

Delegation

Cocoa Delegation

Implementing Delegation

Data Sources

Actions

The Responder Chain

Deferring Responsibility

Nil-Targeted Actions

Swamped by Events

Delayed Performance

12. Accessors and Memory Management

Accessors

Key–Value Coding

KVC and Outlets

Key Paths

Array Accessors

Memory Management

Principles of Cocoa Memory Management

The Rules of Cocoa Manual Memory Management

What ARC Is and What It Does

How Cocoa Objects Manage Memory

Autorelease

Memory Management of Instance Variables (Non-ARC)

Memory Management of Instance Variables (ARC)

Retain Cycles and Weak References

Unusual Memory Management Situations

Nib Loading and Memory Management

Memory Management of Global Variables

Memory Management of CFTypeRefs

Memory Management of Pointer-to-Void Context Info

Properties

Property Memory Management Policies

Property Declaration Syntax

Property Accessor Synthesis

Dynamic Accessors

13. Communication Between Objects

Visibility by Instantiation

Visibility by Relationship

Global Visibility

Notifications

Key–Value Observing

Model–View–Controller


Back to Matt Neuburg’s Home Page

This page prepared December 6, 2013 by Matt Neuburg, phd = matt at tidbits dot com, using RubyFrontier. RubyFrontier is a port, written in the Ruby language, of the Web-site-creation features of UserLand Frontier. Works just like Frontier, but written in Ruby!
Download RubyFrontier from GitHub.