Documentation:
- https://developer.apple.com/documentation/security/keychain_services
- https://developer.apple.com/documentation/security/errsecduplicateitem
Examples:
class_attributes.swift
lists 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. Сейчас это ой как не достаточно, по этому каждый язык программирования решает эту проблему по своему.