Capturing More Than `self`
- Tags:
- swift
A common pattern when using closures in Swift is to add [weak self]
in the captures list to hold a weak reference to self
and avoid a retain cycle. This is then often followed by the following:
guard let self = self else { return }
But I often forget that capture lists can capture other variables in the current scope, so I thought I'd highlight some other use cases.
HashableByKeyPath framework release 1.0.0
Today I have released the 1.0.0 version of a Swift package that aids with adding Equatable
and Hashable
conformance by using KeyPath
s.
The package is available on GitHub.
I created the Swift Playground that sparked this concept in December 2018, so this concept has been rattling around in my brain for a couple of years. The API has changed a lot since the original concept, but the core has stayed the same: a protocol that requires a single function to be implemented that uses KeyPath
s to synthesise Equatable
and/or Hashable
conformance.
homebridge-pc-volume Versions v1.0.0 to v1.2.1
Shepherd Versions v0.1.0 to v0.4.1
- Tags:
- open-source