Some basic information about the development language for native iOS applications

Objective-C is a _____ of the C language


Objective-C borrows much of its syntax from ______, one of the earliest object-oriented languages


Objective-C binds methods and arguments at _____ instead of _______ time



Key-value coding


Key-value observing

There are ____ fundamental building blocks in Objective-C


The nine fundamental building blocks of Objective-C can be dividing into 2 categories: _____ and _______


Data (like nouns) represent the information we are processing and in Objective-C this made up of the four elements of _____, _____, _____, and ______

C types, structures, enums, and objects

Procedures (like verbs) are processes that manipulate or transform data, and in Objective-C these 3 elements are _____, ______, and _____

C operators, functions, and methods

Two additional foundational building blocks of Objective-C distinct from data and procedure type foundations

Protocols and Categories/Extensions

Data types are divided into two main categories: _____ and ______

integer and floating-point

7 Common Integer data types

BOOL, char, short, int, long, long long, NSInteger

3 Common Float data types

float, double, CGFloat

Integer data types come in _____ and _____ variants

signed and unsigned

_____ data types can be both positive and negative, while ______ data types are always zero or greate


True or false: In Objective-C, floats are more commonly used that doubles


What is the intention of the Objective-C command: typedef double NSTimeInterval;

Sets an 'alias' for double to better communicate the intent of a section of code.

Three main categories of more complicated data structures (beyond simple or 'primitive' data types)

pointers, arrays and structs

A variable that points to the memory address of another value


_____ allow indirect access and modification of a variable's value.


Pointers are declared by placing a(n) ___ between the type declaration and the variable name

asterisk (*)

The process of setting or reading the value at an address pointed to by a pointer

dereference (dereferencing)

Placing a(n) ____ before a normal variable name gives it's address

ampersand (&)

What is the result of the following code: int a=10; int b=&a; b=15;

Changes the value of a to 15

Write an Objective-C statement to create an array named myList to hold 10 integers

int myList[10];

The first index in an array is valued at ____


Write an Objective-C statement to create a literal array of integers named fibo containing 1, 1, 2, 3, 5

int fibo[ ] = {1,1,2,3,5};

C-style strings always end with a ____ character


C-style strings are stored in an array of _____


True or false: char s1[5] = "test"; is a correct declaration/initialization for a C-style string

true (C appends a null value automatically)

Rather than using arrays in Objective-C, we often are able to use it's collection classes of ____, ____ and _____ with _____ for strings

NSArray, NSSet and NSDictionary with NSString

The most flexible C data type: ______


A struct may contain multiple ____ consisting of ______ data types


Create a CGRect object called r3 with an origin (top-left corner) of (100, 200), a width of 10 and a height of 20 using a struct literal formulation

CGRect r3 = {{100,200}, {10, 20}};

Create a CGRect object called r3 with an origin (top-left corner) of (100, 200), a width of 10 and a height of 20 using a helper function formulation

CGRect r3 = CGRectMake(100, 200, 10, 20);

If you are compiling an application with ARC, you _____ store Objective-C objects inside a _____



Automatic Reference Counting

A compiler feature that provides automated memory management


____ provide a concise, elegant method for defining a discrete set of values


In the correct statement: int a = 5; 'int' is the ______, 'a' and '5' are the _______ and '=' is the ______. 'a' is known as the variable _______

datatype, operands, assignment operator, identifier

The 6 main categories of operators are: ____, _____, _____, ______, _______ and _______

assignment, arithmetic, comparison, logical, bitwise and membership

______ operators take a single operand


_____ operators take 2 operands


a++; is an example of using a _____ operator


a+b; is an example of using a _____ operator


Given: if(n % 2 == 0)isEven = YES; else isEven = NO; Rewrite using a ternary operator formulation

isEven = (n%2 == 0)? YES : NO;

In computer science, the mathematical concept of "order of operations' is known as the "order of ______"


The _____ function can be used to print a message to the console

printf( )

Symbol used to denote a placeholder in a format string


In C, all functions pass their arguments by ____, which means the compiler makes local copies of those arguments


In a home building analogy, a ____ is the blueprint and the _____ is the house


_____ is one of the main advantages of object-oriented code and allows objects to 'hide away' much of their complexity, operating at times like a proverbial 'black-box'.


A _______ method is one that is likely to be unsupported in the future (although it may work in the present). It's use should be discontinued.


The root class in Objective-C


Objective-C methods are called using ____ _____

square brackets

In a format string, the place holder for an object is ______


Instance variables are ________ in iOS if ________ are used

When creating a class header file, you begin with the _____ keyword and close with the _____ keyword


When creating a class implementation file, you begin with the _____ keyword and close with the _____ keyword


True or false: When declaring 'id' variables, we do not use an asterisk since the 'id' type is already defined as a pointer to an object


Square bracket syntax for calling a method

[receiver message];

Consider: [NSString alloc]. 'alloc' is an example of a(n) ______ method rather than a(n) _______ method


This symbol denotes a method as being an instance method


This symbol denotes a method as being a class method


Initializer method traditionally begin with the _____ prefix


Each class should have a ______ initializer, a single method responsible for performing all of the object's setup and initialization. Typically it is the initializer with the largest number of arguments.


Property attribute that synthesizes accessors that are not thread safe


Property attribute that synthesizes both a getter and setter for the property


Property attribute that synthesizes only a getter for the property


Property attribute that causes the setter to store a copy of the assigned value


Property attribute that causes the setter to store a zeroing weak reference to the assigned value


Property attribute that causes the setter to store a strong reference to the assigned value


Property attribute where the setter stores the assigned value but does not perform any memory management. Should only be used for storing non-object data (int, float, etc). Objective-C objects should use strong or weak attributes instead


Objective-C's protocols are really about communicating _____ _______

developer intent

Protocols are adopted by adding a _____- _______ list of protocols inside _____ ______ after the _______ _________ in a class's _______ block

comma-separated....angled brackets... superclass declaration....@interface

_____ allow you to add new methods to existing classes.


A ____ ____ is a situation where you free memory and then accidentally continue to use it

dangling pointer

A ____ _____ is where you forget to free up memory

memory leak

All objects are created on the _____


ARC is susceptible to ____ _____

retain cycles

A retain cycle occurs when...

...two objects directly or indirectly refer to each other using strong references.

Zeroing weak referencing should be used for _____ and _____ to prevent inadvertent retain cycles

delegates ... data sources

Xcode sequence to convert non-ARC apps to ARC

Edit>Refactor>Convert to Objective-C ARC

Xcode sequence to examine an app for memory leaks or retain cycles


Given: [graduationParty addAttendee: @"Aunt Jane" withDish: @"deviled eggs"]; The 'receiver' is _______; the 'selector' is _________; the 'argument(s)' is(are) _______

graduationParty...addAttendee:withDish...@"Aunt Jane" & @"deviledEggs"

Given: a Java command: graduationParty.addAttendeeWithDish("Aunt Jane", "deviled eggs"); Re-write in Objective-C.

[graduationParty addAttendee: @"Aunt Jane" withDish: @"deviled eggs"];

To destroy an object, set the variable that points to it to _____


Alternative code for: if(venue == nil){[organizer remindToFindVenueForParty];}

if(!venue){[organizer remindToFindVenueForParty];}

To create a "Command Line Tool" type project from a template you must choose _____ from the ______ menu in the template selection area

Application...Mac OS X

Correct the error: NSMutableArray items = [[NSMutableArray alloc] init];

Replace 'items' with '*items'

Correct the error: NSMutableArray items = [[NSMutableArray init] alloc];

Swap the locations of init and alloc

NSMutableArray *items = [[NSMutableArray alloc] init]

Add a semicolon to the end of the message

Rewrite as a 'foreach' construction:for(int i = 0; i < [items count]; i++){NSLog(@"%@", items objectAtIndex:i]);} Use an NSString called 's' as the variable.

for(NSString *s in items){ NSLog(@"%@", s)};

Please allow access to your computer’s microphone to use Voice Recording.

Having trouble? Click here for help.

We can’t access your microphone!

Click the icon above to update your browser permissions above and try again


Reload the page to try again!


Press Cmd-0 to reset your zoom

Press Ctrl-0 to reset your zoom

It looks like your browser might be zoomed in or out. Your browser needs to be zoomed to a normal size to record audio.

Please upgrade Flash or install Chrome
to use Voice Recording.

For more help, see our troubleshooting page.

Your microphone is muted

For help fixing this issue, see this FAQ.

Star this term

You can study starred terms together

NEW! Voice Recording