Skip to content

Instantly share code, notes, and snippets.

Avatar

Bas Broek BasThomas

View GitHub Profile
View temperature.swift
extension Locale {
var defaultTemperatureUnit: UnitTemperature {
if #available(iOS 16, *) {
return UnitTemperature(forLocale: self, usage: .general)
} else {
let mCel = Measurement(value: 0, unit: UnitTemperature.celsius)
let f = MeasurementFormatter()
f.locale = self
let s1 = f.string(from: mCel)
View throw-no-throw.swift
import Foundation
import XCTest
struct WompWomp: Error {
}
func myThrowingFunction() throws -> Int {
throw WompWomp()
}
View CellRegistration.swift
let registration = UICollectionView.CellRegistration<CardCollectionViewCell, Card> { cell, indexPath, card in
cell.card = card
}
let dataSource = UICollectionViewDiffableDataSource<Column, Card>(
collectionView: collectionView
) { collectionView, indexPath, card -> UICollectionViewCell in
collectionView.dequeueConfiguredReusableCell(
using: registration,
for: indexPath,
item: card
View memberwise-nil.swift
struct Let {
let x: String?
}
struct Var {
var x: String?
}
let l1 = Let(x: nil)
// let l2 = Let() // not available
View protocol.swift
protocol MyProtocol {
func doThe(thing: String)
}
extension MyProtocol {
func doThe(thing: String = "") {
print("protocol")
}
}
View UIAccessibility.h
/*
Returns the localized label(s) that should be provided by the user to refer to this element.
Use this property when the accessibilityLabel is not appropriate for dictated or typed input.
For example, an element that contains additional descriptive information in its accessibilityLabel can return a more concise label.
The primary label should be first in the array, optionally followed by alternative labels in descending order of importance.
If this property returns an empty or invalid value, the accessibilityLabel will be used instead.
default == an empty array
default on UIKit controls == an array with an appropriate label, if different from accessibilityLabel
*/
@available(iOS 13.0, *)
View messages.swift
import Foundation
struct Messages: Decodable {
let count: String
let messages: [Message]
enum CodingKeys: String, CodingKey {
case count = "message-count"
case messages
}
View vector.swift
struct Vector<T> {
let size: Int
let initialValue: T
struct Position: Equatable {
let row: Int
let column: Int
}
typealias Matrix = [Position]
View Solution+Collection.swift
struct Solution<Problem>: Collection {
struct Step<T> {
let step: T
}
let steps: [Step<Problem>]
var input: Step<Problem> {
return steps.first! // safe, as steps will guaranteed to be larger than 0.
}
View get-mock.swift
// Beware: this is "pseudocode", which is not guaranteed to compile. ;-)
import CoreData
protocol CoreDataProtocol {
var managedObjectContext: NSManagedObjectContext? { get }
}
class Card: NSManagedObject, CoreDataProtocol {
// conforms by default