Objective-C Programming: Training Course Outline — About Objects, Inc.

Need more info? Call now.

703-251-4474

Courses — About Objects, Inc.

Objective-C Programming

Course Outline

  1. Objective-C Fundamentals
    • Overview
      • Historical Background
      • Language Features
      • Gnu Compiler Support
      • Cocoa Ecosystem
    • Extensions to ANSI C
      • Keywords
      • Message Expressions
      • Defined Types
      • Preprocessor Directives
      • Compiler Directives
      • Class and Method Definitions
      • Objective-C 2.0 Garbage Collection
    • Objects in Objective-C
      • What is an Object?
      • Objects and structs
      • Memory allocation
    • Classes in Objective-C
      • What is a Class?
      • Class Methods and Instance Methods
      • Factory Methods
      • Interface and Implementation Files
    • Messages in Objective-C
      • What is a Message?
      • Message Expressions
      • Message Arguments
      • Method Invocation
    • Writing Your First Application
      • The Objective-C Compiler
      • Command Line Invocation
      • Working with XCode
      • Debug Mode and Other Settings
  2. Understanding Objective-C
    • Object-Oriented Design Techniques
      • Encapsulation
      • Inheritance
      • Polymorphism
    • The id datatype
      • Dynamic Binding vs. Dynamic Typing
      • nil Values
    • Memory Allocation
      • The isa Pointer
      • The alloc and copy Methods
      • Object Initialization
      • init and init... Methods
    • The Runtime System
      • The Messaging Function: objc_msgSend
      • Messages to nil
      • Hidden Arguments: self and _cmd
      • Selectors
      • Superclass Chaining
      • Dispatch Tables
      • Varying Messages at Runtime: performSelector:
      • Runtime Checking: respondsToSelector:
      • The NSClassFromString Function
    • Properties
      • What is a Property?
      • Accessor Methods
      • The @property Directive
      • Alternate Syntax
    • Key-Value Coding
      • Accessing Property Values: valueForKey:
      • Modifying Property Values: setValue:forKey:
      • Working with Key Paths
  3. Memory Management
    • The Reference Counting System
      • retain and release
      • Run Loops and Autorelease Pools
      • When to Retain an Object
      • Implementing dealloc
    • Pitfalls of Reference Counting
      • Relying on Convention
      • Retain Loops
      • Debugging Issues
    • Garbage Collection
      • Activating the Garbage Collector
      • Understanding GC Generations
      • When Not to Use Garbage Collection
    • Exception Handling
      • Exception Handling Domains
      • NS_DURING, NS_HANDLER, and NS_ENDHANDLER
      • @try, @catch, and @finally
      • Memory Management Implications
      • Throwing Exceptions
  1. Foundation Framework
    • Cocoa Design Techniques
      • Delegation
    • Class Clusters
      • Design Pattern
      • Factory Methods
      • Subclasses
    • Protocol
    • Assertions and Logging
    • Mutable and Immutable Classes
      • Why the Distinction?
      • When to Use Mutable vs. Immutable
      • Using copy and mutableCopy
    • NSString
      • Basics
      • Splitting and Combining
      • Working with Ranges
      • Working with Paths
    • NSNumber
      • Storage Inherited from NSValue
      • NSDecimal Functions
    • NSArray
      • Factory Methods
      • Accessing Elements
      • Iterating with NSEnumerator
      • Sorting
      • Filtering
      • Sending Messages to Elements
      • Observing Changes
    • NSDictionary
      • Creating and Initializing
      • Accessing Keys and Values
      • Enumerating Keys and Values
      • File Attributes
      • Storing and Retrieving
    • NSDate and NSCalendarDate
      • Calendar Format
      • Working with Time Intervals
      • Calendar Calculations
  2. Files and I/O
    • Locating Files and Directories with NSBundle
      • Locating the Application Root
      • Finding Application Resources
      • Localization Support
    • File Path Functions
      • NSHomeDirectory
      • NSSearchPathForDirectories InDomains
    • NSRunLoop
      • The Main Run Loop
      • Creating and Running
      • Scheduling Messages with performSelector: target:argument:modes:
      • Canceling Messages with cancelPerformSelector: target:argument
      • Setting Timers
    • Working with NSStream
      • Initializing a Stream
      • Scheduling in Threaded Contexts
      • Handling Stream Events
      • Cleaning Up Streams
    • Reading from an NSInputStream
    • Writing to an NSOutputStream
    • Working with Sockets
      • Setting Up the Connection
      • Using the HTTP Protocol
  3. Advanced Topics
    • Introspection
      • Introspection Methods in NSObject
      • Overriding hash and isEqual:
    • Categories
      • Adding Methods to an Existing Class
      • Using to Organize a Codebase
      • Using to Add Convenience Methods
      • Using to Patch Third-Party Libraries
    • Forwarding
      • Forwarding a Message
      • Overriding forwardInvocation
      • When to Override respondsToSelector:
      • Comparison with Multiple Inheritance
      • Proxies and Distributed Objects
    • Delaying Method Invocation
      • performSelector:withObject: afterDelay:
    • Serialization
      • The NSCoding Protocol
      • Encoding and Decoding
      • Creating an Archive with NSArchiver
      • Performing Substitutions During Decoding
      • Initializing Decoded Objects with awakeAfterUsingCoder:
    • Root Objects
      • NSObject
      • Proxies and Faults
      • Creating Your Own Root Class
    • Dynamic Loading
    • Key-Value Observing
      • isa Swizzling
      • Posting Notifications: willChangeValueForKey: and didChangeValueForKey:
      • Registering an Observer
    • Class Descriptions
      • Implementing NSClassDescription
      • Describing Attributes
      • Describing Relationships
      • Registering Class Descriptions
    • Event-Driven Systems
      • Messages versus Function Calls
      • Cocoa's Target-Action Paradigm