Programming in Objective-C

Course Number:


Objective-C has been Apple’s language of choice for iOS App development since the iPhone first arrived on the scene in 2007. With well over a million apps available for purchase written in Objective-C, its importance and relevance remain crucial for any development team.

This three-day course will provide a thorough exploration of object-oriented programming with Objective-C through a myriad of hands-on labs and exercises that will cover both the theoretical and practical aspects of the language. Topics covered will include Objective-C data types, working with collection objects, control-flow, creating custom classes, inheritance, polymorphism, dynamic binding and dynamic typing, the foundation framework, working with the iOS File System and much more.

An in-depth exploration of Xcode – Apple’s IDE for developing iOS Apps – will also be an integral part of this class. Students will use it to write a myriad of programs that demonstrate the concepts being taught.

Students will have gained a solid foundation and understanding of how Objective-C works, a strong familiarity with the Xcode IDE, and thus be ideally prepared to move on to learning iOS app development.


Beginner programmers as well as experienced programmers who are not familiar with Objective-C.
Course Duration:
3 days


Previous programming experience is recommended but not mandatory. Basic familiarity with Mac computers and working in Mac OS X is recommended.

Course Objectives:
  • Learn to use building blocks of programming, including variables, conditionals and loops
  • Understand how to use Fast Enumeration and how to work with collection objects such as NSArrays, NSDictionaries and NSSets
  • Create custom classes; write instance and class methods
  • Understand object-oriented messaging, inheritance, polymorphism, dynamic binding and dynamic typing
  • Learn to use the Foundation Framework’s classes and data structures: NSString, NSNumber, NSDate, etc.
  • Declare struts and enums
  • Write full-fledged Objective-C programs
Course Outline:
  • Creating and Running an Objective-C Project in Xcode
    • Xcode IDE Overview
    • Building and Testing Programs the Workflow


  • Working with Data Types, Variables and Constants
    • Declaring Variables, Performing Basic Operations
    • Primitive Data Types: Ints, Floats, Doubles, Bools, Chars
    • Strings – Literals, Mutability, Concatenation
    • Logging Variable Values and String Literals to Xcode’s Console
    • Type Casting


  • Arithmetics and Expressions
    • Addition, Subtraction, Multiplication, Division, Modulus
    • Operator Precedence
    • Assignment and Comparison Operators
    • Type Conversions Through Mixed Operations
    • Introduction to the Math Library and Its Functions


  • Control-Flow
    • Conditionals
      • IF and Ternary Statements
      • Compound Relationals
      • The Switch Statement
      • Nested Conditionals
    • Loops
      • FOR Loops, FOR-Condition-Increment
      • WHILE Loops, DO-WHILE loops
      • Loop Control Statements: Continue, Break


  • Creating Custom Classes
    • Declaring a Custom Class Using @interface
    • Implementing a Custom Class Using @implementation
    • Declaring Instance Variables and Instance Methods
    • Creating Synthesized Accessor (Getter/Setter) Methods
    • Instantiating Objects from Classes
    • Sending Messages to Objects and Setting Object Properties


  • Inheritance
    • Base Classes, Creating Subclasses
    • Overriding Methods and Properties
    • Using Self
    • Extension Through Inheritance


  • Polymorphism, Dynamic Typing and Dynamic Binding
    • Same Method Names, Different Classes
    • Static Typing
    • Dynamic Typing and Dynamic Binding
    • Run-Time Querying of Objects and Classes
    • Working with the ID Type


  • The Foundation Framework and Collection Objects
    • The NSNumber Class
    • Working with NSString and NSMutableString
    • Working with NSArrays and NSMutableArrays
    • Working with NSDictionaries and NSMutableDictionaries
    • Working with NSSet and NSMutableSet
    • Fast Enumeration Over Collection Objects


  • Data Persistence and Working with iOS File System
    • Working with the NSFileManager Class
    • File-Paths and the NSURL Class
    • Reading, Writing and Copying Files
    • Working with Directories
    • Working with NSData and NSMutableData


  • Custom Data-Types, Protocols and Categories
    • Declaring and Working with Objective-C Structures
    • Declaring and Working with Objective-C Enums
    • Renaming Data-Types with Typdef
    • Extending Foundation Classes with Categories
    • Understanding and Creating Custom Protocols


  • Archiving and Copying Objects
    • Shallow vs. Deep Copying
    • The NSCopying Protocol
    • Archiving XML Property Lists
    • Creating Encoding and Decoding Methods
    • Working with NSKeyedArchiver

Related Posts

About Us

IT Training, Agile Ways of Working and High Impact Talent Development Strategies

Let Us Come to You!

Classes recently delivered in: Atlanta, Boston, Chicago, Columbus, Dallas, Detroit, Indianapolis, Jerusalem, London, Milan, New York, Palo Alto, Phoenix, Pittsburgh, Portland, Raleigh, San Antonio, San Diego, San Francisco, San Jose, Seattle, Springfield, Mass., St. Louis, Tampa and more!