Duration: 3 Days

Objective of the program

The 3-day intensive program will get the participants off to a quick start coding in Objective-C. There's plenty of lab time to allow the participants to learn by doing. And our exercises are designed to reinforce key concepts in a way that will help them gain proficiency fast. Between lecture sessions and hands-on labs participants will 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.

Participants will also get a peek under the hood, so they will come away with a more solid understanding of how Objective-C actually works under the covers. These insights will come in handy in a multitude of situations‚ÄĒwhether they are trying to learn a new feature of Objective-C, unravel a gnarly problem in the debugger, or design a new component. Beyond that, they will also learn the best ways to take advantage of many of the powerful, built-in features of the Objective-C language, libraries, and frameworks.

·         Review key concepts of ANSI C programming such as pointers and data structures

·         Learn to create and use Objective-C objects and classes

·         Become familiar with Objective-C's novel approach to object-oriented programming

·         Understand dynamic binding and the Objective-C runtime

·         Become familiar with Foundation framework classes and APIs

Course Outline:

ANSI C: Review fundamentals of the ANSI C programming language such as pointers, arrays and data structures.

Objective-C Fundamentals: Learn how to define classes and methods, allocate and deallocate instances, and send messages to objects at runtime.

Foundation Library: Learn to use essential C functions and Objective-C utility classes for working with numbers, dates, arrays, dictionaries, files and directories, and much more.

Objective-C 2.0: Learn to use 2.0 features such as garbage collection, dynamic properties, and fast enumeration.

Memory Management: Learn how to manage memory with retain counts and autorelease pools, and how to avoid memory management pitfalls.

Advanced Features: Learn to use protocols, categories, key-value coding, invocation forwarding and other advanced features of Objective-C.

The Objective-C Runtime System: Get an in-depth understanding of the runtime system and how it supports dynamic typing, dynamic binding, messaging, and message forwarding.

Archives and Serialization: Learn how to serialize and deserialize objects to and from XML and binary formats.


Working with the Debugger: Learn to use the GNU debugger (gdb) interactively to help track down and and fix bugs.