Skip to content

Instantly share code, notes, and snippets.

View regularberry's full-sized avatar

Sean Berry regularberry

View GitHub Profile
// if you want a property to be atomic, we lost that in Swift. This enables that
final class Atomic<A> {
private let queue = DispatchQueue(label: "Atomic serial queue")
private var _value: A
init(_ value: A) {
self._value = value
}
var value: A {
get {
dismiss(animated: true, completion: {
referenceToUnderlyingViewController.doTheBusiness()
})
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
class InjectedViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
print("INJECTED VIEW WILL APPEAR")
}
let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
alert.modalPresentationStyle = .fullScreen
print(alert.modalPresentationStyle.rawValue) // 4 aka ".custom"
UIModalPresentationStyle iPhone iPad
.fullScreen YES YES
.pageSheet YES NO
.formSheet YES NO
.currentContext YES YES
.custom NO NO
.overFullScreen NO NO
.overCurrentContext NO NO
.blurOverFullScreen  only on tvOS - N/A N/A
.popover YES NO
// Generated using Sourcery 0.15.0 — https://github.com/krzysztofzablocki/Sourcery
// DO NOT EDIT
import Foundation
protocol HasFancy {
func rockAndRoll()
func secondMethod() -> Int
}
class MockHasFancy: HasFancy {
func rockAndRoll() {
}
func secondMethod() -> Int {
}
}
{% macro methodSig method %}
func {{ method.name }}
{% if method.returnTypeName|!contains:"Void" %} -> {{method.returnTypeName}}{% endif %}
{% endmacro %}
{% for type in types.protocols %}
// sourcery:file:Mock{{ type.name }}.swift
import Foundation
class Mock{{ type.name }}: {{ type.name }} {
protocol UserStoreController {
func getAllUsers() -> [User]
func getUser(_ id: String) -> User
func openProfile(_ user: User)
}
struct SwiftStructForiOSThatContainsUserAgeData {
let age: Int
}