Skip to content

Instantly share code, notes, and snippets.

View rosskimes's full-sized avatar

Ross Kimes rosskimes

View GitHub Profile
@rosskimes
rosskimes / ManagedObjectChangesPublisher.swift
Created December 2, 2020 16:12 — forked from mjm/ManagedObjectChangesPublisher.swift
Observe changes to a Core Data fetch request with Combine
import Combine
import CoreData
extension NSManagedObjectContext {
func changesPublisher<Object: NSManagedObject>(for fetchRequest: NSFetchRequest<Object>)
-> ManagedObjectChangesPublisher<Object>
{
ManagedObjectChangesPublisher(fetchRequest: fetchRequest, context: self)
}
}
import Foundation
struct DataModel: Codable {
let name: String
let description: String
}
struct DataModelV1: Codable {
let name: String
}
@rosskimes
rosskimes / NSDateFormatter cheat sheet
Created December 22, 2017 04:19 — forked from trevorwang/NSDateFormatter cheat sheet
Date Formats for NSDateFormatter
a: AM/PM
A: 0~86399999 (Millisecond of Day)
c/cc: 1~7 (Day of Week)
ccc: Sun/Mon/Tue/Wed/Thu/Fri/Sat
cccc: Sunday/Monday/Tuesday/Wednesday/Thursday/Friday/Saturday
d: 1~31 (0 padded Day of Month)
D: 1~366 (0 padded Day of Year)
public extension Array {
/**
:param: transform The closure to apply to each value of `self`.
:returns: `Array` containing the results of mapping `transform` over `self` and removing all `nil` values.
*/
public func filterMap<U>(transform: (T) -> U?) -> [U] {
var mapped = [U]()
for item in self {
if let unwrapped = transform(item)? {