156. Напишите программу обратного преобразования строк

157. Когда бы вы использовали тип результата Swift?

Тип результата Swift

Apple добавила тип Result в стандартную библиотеку Swift в Swift 5. Это перечисление с успешным и неудачным случаем, оба из которых имеют связанное значение. Вы можете использовать любой тип для успеха, но отказ ограничен ошибкой:

enum Результат‹Успех, Ошибка›, где Ошибка: Ошибка {

случай успеха (успех)

случай сбоя (отказ)

}

158.Что такое UUID и когда его можно использовать?

Предлагаемый подход: UUID означает «универсальный уникальный идентификатор», который представляет собой длинную строку шестнадцатеричных чисел, хранящихся в одном типе.

UUID помогают гарантировать уникальность некоторого значения, например, вам может понадобиться уникальное имя файла при сохранении чего-либо.

Что касается бонусных баллов, объясните, почему мы называем их универсально уникальными: если вы создали 100 триллионов UUID, вероятность создания дубликата составляет один к миллиарду.

159. В чем разница между типами данных Float, Double и CGFloat?

Предлагаемый подход: вопрос в том, сколько битов используется для хранения данных: Float всегда 32-битный, Double — всегда 64-битный, а CGFloat — либо 32-битный, либо 64-битный, в зависимости от устройства, на котором он работает, но на самом деле он всегда 64-битный.

Чтобы получить бонусные баллы, расскажите о том, как Swift 5.5 и более поздние версии позволяют нам взаимозаменяемо использовать CGFloat и Double.

160.Типы диапазонов?

В Swift есть несколько типов диапазонов, которые вы можете использовать. Самый простой способ работать с ними — использовать оператор диапазона. Давайте рассмотрим различные типы, доступные в Swift.

Оператор закрытого диапазона, идущий от a…b

Оператор закрытого диапазона, идущий от a…b, определяет диапазон, включающий как a, так и b, в котором a не должно быть больше b.

Оператор Close полезен, если вы хотите использовать все значения.

Оператор полуоткрытого диапазона, идущий от a..‹b

Полуоткрытый диапазон определяет диапазон от a до b, но не включает b. Он называется полуоткрытым, так как содержит свое первое значение, но не его конечное значение. Как и в случае с закрытым диапазоном, значение a не должно превышать b.

Оператор полуоткрытия можно использовать для перебора списков с отсчетом от нуля, таких как массивы и коллекции в Swift, в которых вы хотите выполнить итерацию до длины списка, но не включая ее.

Односторонний оператор переходит из…

Односторонний оператор диапазона определяет только одну сторону границ, например, a… или …b. Односторонний диапазон идет как можно дальше в одном направлении

Односторонний диапазон можно использовать для итерации, но только если он используется с начальным значением a…. Иначе непонятно, с чего начинать итерацию. Итерация по одностороннему диапазону требует, чтобы вы вручную проверили, где должен заканчиваться цикл, поскольку в противном случае он продолжался бы бесконечно.

161. Как бы вы объяснили динамический тип новому разработчику iOS?

Предлагаемый подход: это коварный вопрос, потому что если вы скажете «я этим не пользуюсь» или (что еще хуже) «я не знаю, что это такое», это как бы означает, что вы не обращаете внимания на доступность или пользователя. предпочтения. Динамический тип — это способ, позволяющий пользователю настроить предпочтительный размер для всех шрифтов во всех приложениях, и его удивительно легко использовать как с точки зрения разработчика, так и пользователя. SwiftUI даже по умолчанию использует его повсеместно!

162.Что такое учетная запись разработчика/корпорации Apple??

Мы можем создать два типа учетной записи Apple

1.Разработчик $99

2. Предприятие $299

Учетная запись разработчика Мы можем создать два типа сертификата

А.Развитие

B.Производство

А. Развитие

— Используется для внутреннего тестирования приложения

B.Производство

— Используется для загрузки приложения в магазин приложений

Профили

Существует два типа профиля

1.Развитие

2.Распределение

1.Разработка Используйте этот профиль для команды (внутренняя цель разработки)

2. Распространение Используется для загрузки приложения в магазин приложений.

163.Разница между сетевым местоположением и местоположением GPS?

Сетевое местоположение обычно относится к сотовому местоположению или местоположению Wi-Fi. Они менее точны, чем GPS (Global Positioning System — спутниковая система определения местоположения). Когда приложение не может получить местоположение GPS (вероятно, из-за того, что целевое устройство находится внутри здания), менее точное местоположение сети получается и загружается на страницу карты.

164. Я написал цикл for от 1 до 10. Но когда i=7, тогда он выходит из цикла. Я не написал ни одного конкретного ключевого слова, ни сгенерированного исключения. Как это возможно?

for(int i=0, i‹10:i++)

{

if(i==6)

{

i=10;

}

}

Здесь я пытаюсь выполнить итерацию от 0 до 9. Этот цикл повторяется до тех пор, пока условие i‹10 не совпадет.

Теперь в итерации, когда наступит цикл i=6, я сделаю i=10.

Итак, на следующей итерации условие i‹10 не соответствует. Таким образом, он выходит из цикла.

Не используется какое-либо ключевое слово или генерируется какое-либо исключение.

165.Разница между FCM и APNS?

  • FCM отправляется в виде полезной нагрузки JSON, а APNS отправляет либо строку, либо словарь.
  • FCM имеет полезную нагрузку 2 КБ, а APNS — 4 КБ.
  • VOIP-уведомление — 5 КБ
  • APNS сохраняет 1 уведомление для каждого приложения, а FCM сохраняет 100 уведомлений для каждого устройства.
  • FCM поддерживает несколько платформ, в то время как для APNS требуется собственная платформа.
  • Подтверждение можно отправить в FCM при использовании XMPP, но это невозможно в APNS.

Преимущество FCM:

  • Даже если пользователь запрещает уведомление, вы можете уведомить свое приложение, если оно работает на переднем плане (используя shouldEstablishDirectChannel).
  • Не нужно создавать панель инструментов для отправки уведомлений на устройство.
  • Аналитика уведомлений на панели управления FCM.
  • Легко создать структуру полезной нагрузки уведомлений.
  • Обработка на стороне сервера приложений проста, требуется только один ключ для нескольких приложений и платформ (iOS, Android, Интернет).

167.Напишите программу для поиска недостающего числа в массиве от 1 до n?

пусть обр = [1,2,4,5,8,6,9,7]

пусть n = счетчик приб.

пусть сумма = ((n + 1)*(n + 2))/2

вар отсутствуетЧисло = всего

для элемента в поступлении {

недостающий номер = недостающий номер — элемент

}

печать (отсутствуетNum)

168.Напишите программу, которая отличает символы нижнего и верхнего регистра от строки в swift?

let string = «iOSiQA — очень полезный веб-сайт для подготовки к интервью для iOS».

вывод переменной = «»

для ch в строке {

переменная ул = строка (хр)

если str.lowercaseString != ул {

вывод += ул

}

}

печать (вывод)

169. Можем ли мы создать протокол для конкретного класса?

Вы можете ограничить принятие протокола типами классов (а не структурами или перечислениями), добавив AnyObject или протокол класса в список наследования протокола.

протокол какой-то протокол : AnyObject, Someanotherprotocol {

}

170.Можем ли мы объявить необязательный метод протокола в swift?

Да. В этом протоколе имя и необязательные методы должны сопровождаться @objc, поскольку он считается объективным кодом c.

@objc протокол какой-то протокол {

@objc необязательная функция somemethod()

@objc необязательный var someName : String {получить набор}

}

or

Мы можем сделать расширение протокола и предоставить тело по умолчанию для метода протокола. Таким образом, любой класс или структура подтверждает, что протокол не требует реализации этого метода.