ინტერვიუს დახმარება
ინტერვიუს მომზადება
რეზიუმე
სამუშაოს ძებნა
რესურსები
გამოწერა
KA
ტელეგრამა
შესვლა
მენიუს გახსნა
ინტერვიუს დახმარება
AI ასისტენტი
ბრაუზერის გაფართოება
რესურსები
ჩამოტვირთვა
FAQ / დახმარება
ინტერვიუს მომზადება
კითხვების ბანკი
ინტერვიუს ბანკი
იმიტირებული ინტერვიუები
მენტორები
რესურსები
FAQ / დახმარება
სამუშაოს ძებნა
სამუშაოს ძიების ავტომატიზაცია
ბაზრის ანალიზი
ვაკანსიები Telegram-იდან
რესურსები
კარიერა
ბლოგი
FAQ / დოკუმენტაცია
ტელეგრამის ბლოგი
Telegram მხარდაჭერა
იურიდიული
თანხის დაბრუნება
პირობები
კონფიდენციალურობა
უფლების მფლობელები
დავუბრუნდეთ კითხვებს
კითხვების ბანკი
iOS - დეველოპერი
კითხვა
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) } } }
მონიშნეთ დასრულებულად
წინა
შემდეგი