Objective-C Programming (2 Days)

A rapid introduction to the basics of ANSI C and Objective-C programming. This course is designed get you up to speed on the language features and Foundation framework APIs you'll need in everyday Cocoa development. Provides deep insight into Objective-C's dynamic runtime system, along with some of the more challenging aspects of C and Objective-C programming.


Professional developers who are interested in learning to develop Cocoa touch apps for iOS and Apple Watch


Experience with a compiled language such as C# or Java, or a dynamic language such as Ruby or Python

Upcoming Public Classes

Enroll early and save.

Course Overview

This fast-paced, two-day intensive will get you off to a quick start coding in Objective-C. There's plenty of lab time to allow you to learn by doing. And our exercises are designed to reinforce key concepts in a way that will help you gain proficiency fast. Between lecture sessions and hands-on labs you'll get a first-hand introduction to fundamentals of the ANSI C programming language and object-oriented programming with Objective-C classes, objects, methods, instance variables, messages, and more.

  • Learn the fundamentals of ANSI C programming and the standard C libraries.
  • Get solid on C functions, pointers, and data structures.
  • Learn to create and use Objective-C objects, classes, and methods.
  • Understand dynamic binding, messaging, and the Objective-C runtime.
  • Learn how and where to use Objective-C categories and protocols.
  • Gain plenty of hands-on experience with Foundation classes and APIs.

Course Outline

Learn to use Xcode to edit, build, and debug your projects. We'll also share loads of amazing tricks and tips.
C Fundamentals
Master all the basics: variables, data types, expressions, operators, statements, functions, looping and branching, and more.
The C Compiler
Understand the phases of compilation, from preprocessing through linking and loading.
The C Preprocessor
Harness all kinds of preprocessor magic — from simple header file imports, through macros and conditional compilation.
Addresses and Pointers
Get a solid handle on single- and multi-dimensional arrays, pointer arithmetic, and pointers as arguments to functions.
Dynamic Memory Allocation
Understand how memory allocation and deallocation work at the C library API level.
Classes and Objects
Learn the basics of declaring Objective-C classes, writing method implementations, and allocating and initializing instances.
Message Expressions
Message expression syntax can be a little intimidating at first; we’ll teach you techniques that will help you get comfortable quickly.
Message Dispatching
Gain insight into how the Objective-C runtime system dynamically dispatches messages, and learn powerful features such as message forwarding and delayed performs.
Value Classes
Learn to work with Foundation classes that act as wrappers for numbers, strings, and other low-level data types.
Learn to work with mutable and immutable arrays, dictionaries, and other collection types, as well as helper objects such as predicates and sort orderings.
Key-Value Coding
KVC is a critically important mechanism that allows properties to be accessed via introspection. Learn how it can help automate tasks such as data marshaling (e.g., between JSON and model objects).
Learn to declare protocols with required and optional methods, and get familiar with commonly used framework protocols.
Learn to enhance existing classes by adding custom methods. We’ll also show you how to use categories to streamline your codebase.
Managing Memory
Get hands-on experience using Foundation's Manual Reference Counting (MRC) system to gain a more concrete understanding of how Automatic Reference Counting (ARC) actually works the hood.
Declared Properties
Learn how to work with streamlined property declarations and auto-synthesized accessor methods.
Unit Testing
Get up to speed on unit testing with the XCTest framework, using Xcode's built-in tooling.

Request a Class

Your class, your way.

Don't see what you're looking for? Use the form below to request a class that's better suited to your location and schedule.

I'd like to arrange an onsite class.