Some basic information about the development language for native iOS applications


Long-Term Learning

Learn efficiently and remember over time.

Start Long-Term Learning

Get personalized study reminders at intervals optimized for better retention.
Track your progress on this set by creating a folder
Or add to an existing folder

Add this set to a folder

  • 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

    This is a Plus feature