CMSC 436 Final Exam
Verified Exam Questions and Answers Latest update 2026/2027
Question:
What types of objects are reference counted? -
Answer:
Reference data:
Classes and Closures.
ARC tracks how many properties, constants, and variables are currently referring to each
class/closure instance.
Question:
When are references added and subtracted? -
Answer:
Added when a
strong reference to the instance is created.
Subtracted when a strong reference to the instance is removed.
Question:
What types of references are added for which type of constant or property? -
Answer:
Whenever you assign a class or closure instance to some constant, property,
or variable, that constant, property, or variable makes a strong reference to the instance.
Question:
What are the attributes of a weak reference? -
, Answer:
Does not protect
the object from being deallocated by ARC.
Does not hold a strong reference.
Does not increase the reference count.
Is a non-constant optional.
When the referenced object is deleted the referencing pointer is set to nil, which can lead to
dangling pointers.
Used when the referenced instance has a shorter lifetime than the referencing instance.
Used when it is logically possible for the referenced instance to be null at some point.
Question:
What are the attributes of an unowned reference? -
Answer:
Does not
protect the object from being deallocated by ARC.
Does not hold a strong reference.
Does not increase the reference count.
Is a non-optional type.
Pointer is never set to nil, even if the referenced instance is deleted.
Must be set during init().
Used when the referenced instance has a longer lifetime than the referencing instance.
Used when it is never logically possible for the referenced instance to be null at any point.
Question:
What are retain cycles? -
Answer:
Objects A and B both have strong
references to each other. Therefore it is impossible for ARC to remove either object because each
one has a strong reference to the other.
Verified Exam Questions and Answers Latest update 2026/2027
Question:
What types of objects are reference counted? -
Answer:
Reference data:
Classes and Closures.
ARC tracks how many properties, constants, and variables are currently referring to each
class/closure instance.
Question:
When are references added and subtracted? -
Answer:
Added when a
strong reference to the instance is created.
Subtracted when a strong reference to the instance is removed.
Question:
What types of references are added for which type of constant or property? -
Answer:
Whenever you assign a class or closure instance to some constant, property,
or variable, that constant, property, or variable makes a strong reference to the instance.
Question:
What are the attributes of a weak reference? -
, Answer:
Does not protect
the object from being deallocated by ARC.
Does not hold a strong reference.
Does not increase the reference count.
Is a non-constant optional.
When the referenced object is deleted the referencing pointer is set to nil, which can lead to
dangling pointers.
Used when the referenced instance has a shorter lifetime than the referencing instance.
Used when it is logically possible for the referenced instance to be null at some point.
Question:
What are the attributes of an unowned reference? -
Answer:
Does not
protect the object from being deallocated by ARC.
Does not hold a strong reference.
Does not increase the reference count.
Is a non-optional type.
Pointer is never set to nil, even if the referenced instance is deleted.
Must be set during init().
Used when the referenced instance has a longer lifetime than the referencing instance.
Used when it is never logically possible for the referenced instance to be null at any point.
Question:
What are retain cycles? -
Answer:
Objects A and B both have strong
references to each other. Therefore it is impossible for ARC to remove either object because each
one has a strong reference to the other.