Ajutor la interviu
Pregătirea interviului
Reluați
Căutare de locuri de muncă
Resurse
Abonament
RO
Telegramă
Autentificare
Deschide meniul
Ajutor la interviu
Asistent AI
Extensia browser
Resurse
Descărcați
Întrebări frecvente / Ajutor
Pregătirea interviului
Banca de întrebări
Interviu banca
Interviuri simulate
Mentori
Resurse
Întrebări frecvente / Ajutor
Căutare de locuri de muncă
Automatizare căutare locuri de muncă
Analiza pietei
Locuri de muncă din Telegram
Resurse
Cariere
Blog
Întrebări frecvente / Documentație
Blog Telegram
Suport Telegram
Legal
Rambursare
Termeni
Confidențialitate
Titularii de drepturi
Înapoi la întrebări
Banca de întrebări
iOS - Dezvoltator
Întrebare
Middle+
import UIKit protocol CacheProtocol { associatedtype Value func setValue(_ value: Value?, forKey key: String) func getValue(forKey key: String) -> Value? func fetchValue(forKey key: String, completion: @escaping (Value?) -> Void) } final class Cache<T>: CacheProtocol { private var storage: [String: T] = [:] private let queue = DispatchQueue(label: "my.queue", attributes: .concurrent) func setValue(_ value: T?, forKey key: String) { queue.sync(flags: .barrier) { storage[key] = value } } func getValue(forKey key: String) -> T? { queue.sync { return storage[key] } } func fetchValue(forKey key: String, completion: @escaping (T?) -> Void) { queue.async { let value = self.storage[key] completion(value) } } }
Marcați ca finalizat
Anterior
În continuare