Documentation:
- https://developer.apple.com/documentation/security/keychain_services
- https://developer.apple.com/documentation/security/errsecduplicateitem
Examples:
class_attributes.swiftlists attributes by classes
| // | |
| // WebWithCameraViewController.swift | |
| // | |
| // Created by Vitaly Berg on 3/20/24. | |
| // | |
| import UIKit | |
| import WebKit | |
| import AVFoundation |
| class UserNotificationCenterViewer { | |
| class func viewDelivered() { | |
| UNUserNotificationCenter.current().getDeliveredNotifications { notifications in | |
| print("Delivered Notifications") | |
| print("-----------------------") | |
| for notification in notifications { | |
| print("date:", notification.date) | |
| print("identifier:", notification.request.identifier) | |
| print("trigger:", notification.request.trigger ?? "nil") | |
| let content = notification.request.content |
Documentation:
Examples:
class_attributes.swift lists attributes by classesExamples how encode/decode RFC 3339 (ISO 8601) dates in JSON by JSONEncoder/JSONDecoder.
Links:
| // | |
| // Models.swift | |
| // Vitaly Berg | |
| // | |
| // Created by Vitaly Berg on 7/21/21. | |
| // Copyright © 2021 Vitaly Berg. All rights reserved. | |
| // | |
| import Foundation | |
| import UserNotifications |
| // | |
| // KeyboardObserver.swift | |
| // Vitaly Berg | |
| // | |
| // Created by Vitaly Berg on 7/21/21. | |
| // Copyright © 2021 Vitaly Berg. All rights reserved. | |
| // | |
| import UIKit |
| import UIKit | |
| @main | |
| class AppDelegate: UIResponder, UIApplicationDelegate { | |
| var window: UIWindow? | |
| private func setupWindow() { | |
| window = UIWindow(frame: UIScreen.main.bounds) | |
| window?.makeKeyAndVisible() | |
| } |
Дата чаще всего внутри представлена в виде Unix-времени (POSIX-время), что в свою очередь является числом прошедщих секунд с 00:00:00 1 января 1970 года в UTC зоне.
Природа Unix-времени порождает некоторые проблемы связанные с ограничениями размерности выбранной для хранения этих секунд.
Дата в человеческом понимании высчитывается из этих секунд на основе часового пояса (Time Zone).
Часовые пояса принято отситчывать он нулевого часового пояса UTC.
Часовые пояса помогают высчитать локальное время от Unix-времени.
В контексте языков программирования и их стандартных библиотек разработчики очень часто не задумываются и даже не представляют насколько вопросы о строках и датах не просты, все привыкли делать let str = "" и на этом повседневные потребности исчерпываются, но самый банальный вопрос что такое длинна строки в языке программирования может ввести в ступор. Пример длинны строки в разных языках программирования:
print("😎".count) // Swift: 1
print(NSString("😎").length) // Swift with NSString: 2
console.log('😎'.length) // JavaScript: 2
fmt.Println(len("😎")) // Go: 4
40-60 лет назад где-нибудь для американцев для строки было достаточно сделать однобайтный массив с символами из ASCII. Сейчас это ой как не достаточно, по этому каждый язык программирования решает эту проблему по своему.