и посмотреть медиа
Preguntas de entrevista de Swift
и посмотреть медиа
Preguntas, pruebas y tareas para desarrolladores de iOS en Telegram.
Preguntas, pruebas y tareas para desarrolladores de iOS en Telegram.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
El canal está dedicado a la preparación de entrevistas en idioma Swift. Contiene preguntas actuales, pruebas, tareas prácticas e información de vacantes. Ideal para desarrolladores iOS principiantes y experimentados que quieren refrescar sus conocimientos y pasar con éxito entrevistas.
🤔 Какие виды диспетчеризации существуют в свифт? В Swift существует несколько видов диспетчеризации, которые определяют, как и когда вызываются методы или функции. Основные виды диспетчеризации включают статическую диспетчеризацию (static dispatch), диспетчеризацию по таблице виртуальных функций (vtable dispatch), диспетчеризацию по свидетелю (witness table dispatch) и динамическую диспетчеризацию (dynamic dispatch). Рассмотрим их подробнее: 🟠Статическая диспетчеризация (Static Dispatch) Вызов функции или метода определяется на этапе компиляции. Используется для функций и методов, которые не переопределяются в подклассах или не являются динамическими. Для структур, перечислений и final классов. struct MyStruct { func printMessage() { print("Hello from MyStruct") } } let instance = MyStruct() instance.printMessage() // Вызов определяется на этапе компиляции 🟠Диспетчеризация по таблице виртуальных функций (Vtable Dispatch) Используется для вызова методов класса, которые могут быть переопределены в подклассах. Виртуальная таблица (vtable) используется для определения, какой метод вызывать. Для классов и их подклассов. class BaseClass { func printMessage() { print("Hello from BaseClass") } } class SubClass: BaseClass { override func printMessage() { print("Hello from SubClass") } } let instance: BaseClass = SubClass() instance.printMessage() // Вызов определяется в runtime с использованием vtable 🟠Диспетчеризация по свидетелю (Witness Table Dispatch) Используется для вызова методов протоколов, реализованных типами. Таблица свидетелей (witness table) используется для определения, какой метод вызывать. Для типов, соответствующих протоколам. protocol MyProtocol { func printMessage() } struct MyStruct: MyProtocol { func printMessage() { print("Hello from MyStruct") } } let instance: MyProtocol = MyStruct() instance.printMessage() // Вызов определяется в runtime с использованием witness table 🟠Динамическая диспетчеризация (Dynamic Dispatch) Используется для вызова методов, отмеченных как dynamic или методов Objective-C. Метод определяется в runtime с использованием Objective-C runtime. Для методов, которые должны быть динамически разрешены в runtime, обычно для взаимодействия с Objective-C. import Foundation class MyClass: NSObject { @objc dynamic func printMessage() { print("Hello from MyClass") } } let instance = MyClass() instance.printMessage() // Вызов определяется в runtime с использованием Objective-C runtime Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!