

- Главная
 - Каталог
 - Интернет технологии
 - Swift | Вопросы собесов
 
Статистика канала
Полная статистикаchevron_rightmain – содержит только стабильные версии.  
- develop – основная ветка разработки, в неё вливаются все новые фичи.  
feature/*.  
- После завершения сливается в develop.  
    
        git checkout develop
git checkout -b feature/new-cool-feature
# Разработка...
git checkout develop
git merge feature/new-cool-feature
git branch -d feature/new-cool-feature{}
    
release/* от develop.  
- Здесь можно тестировать и исправлять баги.  
- После финального теста сливается в main и develop.  
    
        git checkout develop
git checkout -b release/1.0
# Фиксим баги, тестируем...
git checkout main
git merge release/1.0
git tag -a v1.0 -m "Release 1.0"
git checkout develop
git merge release/1.0
git branch -d release/1.0{}
    
main, создаём hotfix/*.  
- После исправления вливаем в main и в develop.  
    
        git checkout main
git checkout -b hotfix/urgent-bugfix
# Фиксим баг...
git checkout main
git merge hotfix/urgent-bugfix
git checkout develop
git merge hotfix/urgent-bugfix
git branch -d hotfix/urgent-bugfix{}
    
Ставь 👍 и забирай 📚 Базу знанийDictionary) должны быть уникальными и сравниваться между собой. Поэтому, если вы хотите использовать*свою структуру в качестве ключа, она должна соответствовать протоколу Hashable.  
Hashable  
Должен быть реализован hash(into:) или использовать Equatable + Hashable автоматически  
Свойства структуры должны быть Hashable (если String, Int, Double – все ок)  
    
        struct Person: Hashable {
    let id: Int
    let name: String
}
// Теперь можно использовать `Person` как ключ
var peopleAges: [Person: Int] = [
    Person(id: 1, name: "Alice"): 25,
    Person(id: 2, name: "Bob"): 30
]
// Доступ по ключу
let alice = Person(id: 1, name: "Alice")
print(peopleAges[alice] ?? "Не найдено") // 25{}
    
hash(into:):
    
        struct Person: Hashable {
    let id: Int
    let name: String
    func hash(into hasher: inout Hasher) {
        hasher.combine(id)   // Используем только id для хеша
    }
}{}
    
Ставь 👍 и забирай 📚 Базу знаний
    
        class ShapeDrawer {
    func draw(shape: String) {
        if shape == "circle" {
            print("Рисуем круг")
        } else if shape == "square" {
            print("Рисуем квадрат")
        }
    }
}{}
    
    
        protocol Drawable {
    func draw()
}
class Circle: Drawable {
    func draw() {
        print("Рисуем круг")
    }
}
class Square: Drawable {
    func draw() {
        print("Рисуем квадрат")
    }
}
class ShapeDrawer {
    func draw(shape: Drawable) {
        shape.draw()
    }
}{}
    
Ставь 👍 и забирай 📚 Базу знанийNSManagedObjectID – это уникальный идентификатор объекта в Core Data, который остаётся неизменным на протяжении всего жизненного цикла объекта.  
uriRepresentation() – это строка (URL), которая уникально идентифицирует объект.  
    
        func saveObjectID(_ object: NSManagedObject) {
    let objectID = object.objectID.uriRepresentation().absoluteString
    UserDefaults.standard.set(objectID, forKey: "savedObjectID")
}{}
    
URL из UserDefaults.  
2. Преобразуем URL в NSManagedObjectID.  
3. Загружаем объект из Core Data.  
    
        func fetchSavedObjectID(context: NSManagedObjectContext) -> NSManagedObject? {
    guard let objectIDString = UserDefaults.standard.string(forKey: "savedObjectID"),
          let objectURL = URL(string: objectIDString) else { return nil }
    let objectID = context.persistentStoreCoordinator?.managedObjectID(forURIRepresentation: objectURL)
    if let objectID = objectID {
        return context.object(with: objectID)
    }
    return nil
}{}
    
Ставь 👍 и забирай 📚 Базу знанийstruct) – это один из основных типов данных в Swift. Они значимые (value type), то есть при передаче копируются, а не передаются по ссылке.  
    
        struct Car {
    var model: String
    var year: Int
    func description() -> String {
        return "\(model) – \(year)"
    }
}
let car1 = Car(model: "Tesla", year: 2023)
var car2 = car1 // Создается копия
print(car1.description()) // Tesla – 2023
print(car2.description()) // Tesla – 2023
car2.year = 2024 // Изменяем car2, но car1 остается прежним
print(car1.year) // 2023
print(car2.year) // 2024{}
    
mutating
    
        struct Counter {
    var count = 0
    mutating func increment() {
        count += 1
    }
}
var counter = Counter()
counter.increment()
print(counter.count) // 1{}
    
Ставь 👍 и забирай 📚 Базу знанийОтзывы канала
Каталог Телеграм-каналов для нативных размещений
Swift | Вопросы собесов — это Telegam канал в категории «Интернет технологии», который предлагает эффективные форматы для размещения рекламных постов в Телеграмме. Количество подписчиков канала в 2.1K и качественный контент помогают брендам привлекать внимание аудитории и увеличивать охват. Рейтинг канала составляет 5.6, количество отзывов – 0, со средней оценкой 0.0.
Вы можете запустить рекламную кампанию через сервис Telega.in, выбрав удобный формат размещения. Платформа обеспечивает прозрачные условия сотрудничества и предоставляет детальную аналитику. Стоимость размещения составляет 2937.06 ₽, а за 2 выполненных заявок канал зарекомендовал себя как надежный партнер для рекламы в TG. Размещайте интеграции уже сегодня и привлекайте новых клиентов вместе с Telega.in!
Вы снова сможете добавить каналы в корзину из каталога
Комментарий