Swift
Q1. What is this code an example of?
let val = (Double)6
- an error
- typecasting
- assignment
- initialization
Q2. What is the error in this code?
let x = 5 guard x == 5 { return }
- The guard is missing the else.
- Nothing is wrong.
- The guard is missing a then.
- The comparison is wrong.
Q3. What is the raw/underlying type of this enum?
enum Direction { case north, south, east, west }
- There is none.
- String
- Any
- Int
Q4. Why is dispatchGroup used in certain situations?
- It allows multiple synchronous or asynchronous operations to run on different queues.
- It allows track and control execution of multiple operations together.
- It allows operations to wait for each other as desired.
- all of these answers.
Q5. What is this code an example of?
let val = 5 print("value is: \(val)")
- string interpolation
- string compilation
- method chaining
- string concatenation
Q6. What are the contents of vals
after this code is executed?
var vals = [10, 2] vals.sort { (s1, s2) -> Bool in s1 > s2 }
- [10, 2]
- [2, 10]
- nil
- This code contains an error
Q7. What does this code print?
typealias Thing = [String, Any] var stuff: Thing print(type(of: stuff))
- Dictionary<String, Any> (To print this than code in question has to be
typealias Thing = [String: Any]
) - Dictionary
- ERROR (If code in question is really like that.)
- Thing
Q8. What is the value of y?
let x = ["1", "2"].dropFirst() let y = x[0]
- This code contains an error
- 1
- 2
- nil
Q9. What is the value of test in this code?
var test = 1 == 1
- TRUE
- YES
- 1
- This code contains an error
Q10. What is the value of y?
var x: Int? let y = x ?? 5
- 5
- 0
- nil
- This code contains an error
Q11. What is the type of this function?
func add(a: Int, b: Int) -> Int { return a+b }
- Int
- (Int, Int) -> Int
- Int
- Functions don't have types.
Q12. What is the correct way to call this function?
func myFunc(_ a: Int, b: Int) -> Int { return a + b }
- myFunc(5, b: 6)
- myFunc(5, 6)
- myFunc(a: 5, b: 6)
- myFunc(a, b)
Q13. The Codable protocol is _?
- a combination of Encodable and Decodable
- not a true protocol <<<<---Possibly correct as it's a typealias of Encodable and Decodable
- required of all classes
- automatically included in all classes
Q14. What is the type of value1 in this code?
let value1 = "\("test".count)"
- String
- Int
- null
- test.count
Q15. When a function takes a closure as a parameter, when do you want to mark is as escaping?
- when it's executed after the function returns
- when it's scope is undefined
- when is's lazy loaded
- all of these answers
Q16. What's wrong with this code?
class Person { var name: String var address: String }
- Person has no initializers.
- Person has no base class.
- var name is not formatted corrrectly.
- address is a keyword.
Q17. What is the value of names after this code is executed?
let names = ["Bear", "Joe", "Clark"] names.map { (s) -> String in return s.uppercased() }
- ["BEAR", "JOE", "CLARK"]
- ["B", "J", "C"]
- ["Bear", "Joe", "Clark"]
- This code contains an error.
Q18. What describes this line of code?
let val = 5
- a constant named val of type Int
- a variable named val of type item
- a constant named val of type Number
- a variable named val of type Int
Q19. What is the error in this code?
extension String { var firstLetter: Character = "c" { didSet { print("new value") } } }
- Extensions can't add properties. // although extensions technically can't contain stored properties
- Nothing is wrong with it.
- didSet takes a parameter.
- c is not a character.
Q20. didSet and willSet are examples of _?
- property observers
- key properties
- all of these answers
- newOld value calls
Q21. What is wrong with this code?
self.callback = { self.attempts += 1 self.downloadFailed() }
- Use of self inside the closure causes retain cycle.
- You cannot assign a value to closure in this manner.
- You need to define the type of closure explicitly.
- There is nothing wrong with this code.
Q22. How many values does vals have after this code is executed?
var vals = Set<String> = ["4", "5", "6"] vals.insert("5")
- three
- four
- eight
- This code contains an error.
Q23. How can you avoid a strong reference cycle in a closure?
- Use a capture list to set class instances of weak or unowned.
- You can't, there will always be a danger of strong reference cycles inside a closure.
- Initialize the closure as read-only.
- Declare the closure variable as lazy.
Q24. What is wrong with this code?
if let s = String.init("some string") { print(s) }
- This String initializer does not return an optional.
- String does not have an initializer that can take a String.
- = is not a comparison.
- Nothing is wrong with this code.
Q25. Which code snippet correctly creates a typealias closure?
- typealias CustomClosure: () -> ()
- typealias CustomClosure { () -> () }
- typealias CustomClosure -> () -> ()
- typealias CustomClosure -> () {}
Q26. How do you reference class members from within a class?
- self
- instance
- class
- this
Q27. All value types in Swift are _ under the hood?
- structs
- classes
- optionals
- generics
Q28. What is the correct way to add a value to this array?
var strings = [1, 2, 3]
- all of these answers
- strings.append(4)
- strings.insert(5, at: 1)
- strings += [5]
Q29. How many times will this loop be executed?
for i in 0...100 { print(i) }
- 0
- 101
- 99
- 100
Q30. What can AnyObject represent?
- an instance of any class
- an instance of function type
- all of these answers
- an instance of an optional type
Q31. What does this code print?
typealias Thing = [String:Any] var stuff : Thing print(type(of:stuff))
- Dictionary
- ERROR
- Thing
- Dictionary<String, Any>
Q32. What is the value of t after this code is executed?
let names = ["Larry", "Sven", "Bear"] let t = names.enumerated().first().offset
- This code is invalid.
- This code does not compile.
- 0
- 1
- Larry
Q32. What is the value of test after this code executes?
let vt = (name: "ABC", val: 5) let test = vt.0
- ABC
- 0
- 5
- name
Q33. What is the base class in this code?
class LSN : MMM { }
- MMM
- LSN
- There is no base class.
- This code is invalid.
Q34. What does this code print to the console?
var userLocation: String = "Home" { willSet(newValue) { print("About to set userLocation to \(newValue)...") } didSet { if userLocation != oldValue { print("userLocation updated with new value!") } else { print("userLocation already set to that value...") } } } userLocation = "Work"
- About to set userLocation to Work… userLocation updated with new value!
- About to set userLocation to Work… userLocation already set to that value…
- About to set userLocation to Home… userLocation updated to new value!
- ERROR
Q35. What must a convenience initializer call?
- a base class convenience initializer
- either a designated or another convenience initializer
- a designated initializer
- none of these answers
Q36. Which object allows you access to specify that a block of code runs in a background thread?
- DispatchQueue.visible
- DispatchQueue.global
- errorExample need to be labeled as
throws
. - DispatchQueue.background
Q37. What is the inferred type of x?
let x = ["a", "b", "c"]
-
String[]
-
Array<String>
-
Set<String>
-
Array<Character>
Q38. What is the value of oThings
after this code is executed?
let nThings: [Any] = [1, "2", "three"] let oThings = nThings.reduce("") { "\($0)\($1)" }
- 11212three
- 115
- 12three
- Nothing, this code is invalid.
Q39. How would you call a function that throws errors and also returns a value?
-
!try
-
try?
-
try!
-
?try
Q40. What is wrong with this code?
protocol TUI { func add(x1 : Int, x2 : Int) -> Int { return x1 + x2 } }
- Protocol functions cannot have return types.
- Protocol functions cannot have implementations.
- Nothing is wrong with it.
-
add
is a reserved keyword.
Q41. In this code, what are wheels
and doors
examples of?
class Car { var wheels: Int = 4 let doors = 4 }
- class members
- This code is invalid.
- class fields
- class properties
Q42. How do you designated a failable initializer?
- You cannot
- deinit
-
init?
- init
Q43. What is printed when this code is executed?
let dbl = Double.init("5a") print(dbl ?? ".asString()")
- five
- 5a
-
.asString()
- 5
Q44. In the function below, what are this
and toThat
examples of?
func add(this x: Int, toThat y: Int)->{}
- none of these answers
- local terms
- argument labels
- parameters names
Q45. What is wrong with this code?
for (key, value) in [1: "one", 2: "two"]{ print(key, value) }
- The interaction source is invalid
- The interaction variable is invalid
- There is nothing wrong with this code
- The comma in the print is misplaced
Q46. Which of these choices is associated with unit testing?
- XCTest
- all of these answers
- @testable
- XCAssert
Q47. In the code below, what is width an example of?
class Square{ var height: Int = 0 var width : Int { return height } }
- This code contains error
- a closure
- a computed property
- lazy loading
Q48. What data type is this an example of?
let vals = ("val", 1)
- a dictionary
- a tuple
- an optional
- This code contains error
Q49. What is wrong with this code?
var x = 5 x = 10.0
- You cannot assign a Double to a variable of type Int
- x is undefined
- x is a constant
- x has no type
Q50. What will this code print to the console?
var items = ["a":1, "b":2, "c":"test"] as [String: Any] items["c"] = nil print(items["c"] as Any)
- Any
- test
- 1,2,3
- nil
Q51. What is wrong with this code?
let val = 5.0 + 10
- There is nothing wrong with this code
- val is a constant and cannot be changed
- 5.0 and 10 are different types
- There is no semicolon
Q52. How many parameters does the initializer for Test have?
struct Test{ var score: Int var date: Date }
- zero
- This code contains an error
- two
- Structs do not have initializers
Q53. What prints to the console when executing this code?
let x = try? String.init("test") print(x)
- nil
- Nothing - this code contains an error
- Optional("test")
- test
Q54. How can you sort this array?
var vals = [1,2,3]
-
vals.sort { $0 < $1 }
-
vals.sort { (s1, s2) in s1 < s2 }
-
vals.sort(by: <)
- all of these answers
Q55. DispatchQueue.main.async takes a block that will be
- not executed
- executed in the main queue
- none of these answers
- executed on the background thread
Q56. When is deinit called?
- When a class instance needs memory
- All of these answers
- When the executable code is finished
- When a class instance is being removed from memory
Q57. How do you declare an optional String?
- String?
- Optional[String]
- [String]?
- ?String
Q58. How many times this code will be executed? —OR— How many times will this loop be performed?
for i in ["0", "1"]{ print(i) }
- one
- two
- three
- This code does not compile
Q59. What does this code print?
let names = ["Bear", "Tony", "Svante"] print(names[1]+"Bear")
- 1Bear
- BearBear
- TonyBear
- Nothing, this code is invalid
Q60. What is true of this code?
let name: String?
- name can hold only a string value.
- name can hold either a string or nil value.
- Optional values cannot be
let
constants. - Only non-empty string variables can be stored in name.
Q61. What is the value of val
after this code is executed?
let i = 5 let val = i * 6.0
- This code is invalid.
- 6
- 30
- 0
Q62. What does this code print?
enum Positions : Int { case first, second, third, other } print (Positions.other.rawValue)
- 3
- 0
- other
- nil
Q63. What is printed to the console when this code is executed?
"t".forEach { (char) in print(char) }
- nil
- Nothing, since the code contains an error
- t
- zero
Q64. What prints when this code is executed?
let s1 = ["1", "2", "3"] .filter { $0 > "0" } .sorted { $0 > $1 } print(s1)
- []
- ["3", "2", "1"]
- [321]
- ["1", "2", "3"]
Q65. What enumeration feature allows them to store case-specific data?
(Question does not make that much sense though. )
- associated values
- integral values
- raw values
- custom values
Q66. In the code below, AOM must be a(n) _?
class AmP : MMM, AOM { }
- class
- protocol
- enumeration
- struct