WWDC 2016: Викторина перед игрой

Второй ежегодный T.T.I.D.G. викторина здесь 🎊

Небольшое примечание - все мои будущие сообщения будут публиковаться на моем специализированном веб-сайте, и эта публикация больше не обновляется. Спасибо за чтение!

Если вы хотите быстро понять, как все это работает или с чего все началось, не стесняйтесь перейти к первой викторине за прошлый год.

Участники - раскрутите вашу заданную NSOperationQueue ⚡️

Ключевые правила

Есть три раунда, и разбивка по очкам выглядит следующим образом:

  • Раунд 1 –1 балл за каждый ответ.
  • Раунд 2: по 2 балла за каждый ответ.
  • Раунд 3 - по 3 балла за каждый ответ.

Последний вопрос каждого раунда - это необязательный вопрос с подстановочными знаками. Сделайте все правильно, и ваша команда получит 4 балла, но пропустит это, и команда получит вычли 2 балла.

Раунд 1 - Быстрые вопросы по софтболу

Вопрос 1:
Какое ключевое слово используется для определения константы в Swift?

Вопрос 2:
Можно ли создать класс Swift без базового класса, true или false?

Вопрос 3:
Чем называется в Swift процесс запроса и вызова свойств, методов и индексов для необязательного элемента, который в настоящее время может иметь значение nil?

Вопрос 4:
Значения в Swift могут быть неявно преобразованы в другие типы, true или false?

Подстановочный знак:
Какой университет разработал и выпустил менее известный язык параллельных сценариев, также известный как Swift?

Раунд 2 - Принесите свой разумный колпак

Вопрос 1:
Как называется популярный API, поддерживающий асинхронное выполнение операций на уровне Unix системы?

Вопрос 2:
Как и другие литералы, строковые литералы в Objective-C создаются путем изменения фактического кода при компиляции, истинного или ложного?

Вопрос 3:
Следующее свойство foo могло быть изменено вне своего класса, истинно или ложно?

public class dontOverThinkIt
{
    public private(set) var foo: String
}

Вопрос 4:
В популярном сеансе WWDC 15 было заявлено, что по своей сути Swift является ______ ______ языком, хотя его можно использовать как объектно-ориентированный. Какой термин использовался для описания Свифта?

Подстановочный знак.
Каким был популярный термин для обозначения кода, написанного в Swift в результате нескольких уровней развертывания опций?

Раунд 3 - Только для опытных разработчиков

Вопрос 1:
Как называется шаблон проектирования, который широко использует платформа Foundation, который состоит из группировки ряда частных конкретных подклассов в рамках общедоступного абстрактного суперкласса?

Вопрос 2:
Как называлась менее известная техника, которая была удалена в Swift 3 и заключалась в передаче кортежа, соответствующего списку формальных параметров функции?

Вопрос 3 (проблема кода):
Учитывая следующую переменную типа UInt8, напишите код, в результате которого ее значение будет установлено на 0 (ноль), без прямого присвоения его как такового:

var box = UInt8.max
// Your code
print(box) //Results in 0

Вопрос 4:
В Swift 2.2, где было единственное место, где тип Bit используется в стандартной библиотеке Swift?

Подстановочный знак:
Какое было первое (и в конечном итоге принятое) предложение сообщества по языку программирования Swift?

Конец! Вы можете найти ответы прямо ниже 👇

Надеюсь, вам понравилась вторая ежегодная викторина WWDC от The Traveled iOS Developer’s Guide. Я всегда с энтузиазмом писал об этом, потому что это означает одно - множество сочных, потрясающих и новых API-интерфейсов ждут не за горами! Принесите WWDC 16! Если вы заметите неточности, не стесняйтесь кричать мне.

… Думаю, теперь единственный вопрос: статический или динамический 😝?

Ключ ответа

1 тур:

1: let
2: True
3: Необязательная цепочка
4: False
Подстановочный знак: Чикагский университет.

Раунд 2:

1: GCD, или большая централизованная отправка.
2: False, они компилируются как константы в содержащем его исполняемом файле.
3: False
4: протоколно-ориентированный язык программирования.
Подстановочный знак: пирамида гибели!

3 тур:

1: Кластеризация классов
2: Разделение кортежей.
3: Переменная box инициализируется максимальным значением, которое UInt8 может удерживать (11111111 в двоичном формате или 255). Добавление 1 в box с помощью оператора сложения переполнения выталкивает его двоичное представление поверх того, что может содержать UInt8, что означает, что оно выходит за свои границы. Оставшееся значение в пределах UInt8 после добавления переполнения равно 00000000 в двоичном формате или нулю.

Код:

//Box equals 255, which is the maximum value a UInt8 can hold
var unsignedOverflow = UInt8.max
box = box &+ 1
print(box) //0

4: Это использовалось как индекс для CollectionOfOne. Тип Bit будет удален в Swift 3.

Подстановочный знак: Чтобы разрешить использование большинства ключевых слов Swift в качестве метки аргумента.

Джордан Морган (Jordan Morgan) - инженер-программист iOS, который руководит Dreaming In Binary.
@ jordanmorgan10.