Swift version: 5.6
Swift keypaths are a way of storing uninvoked references to properties, which is a fancy way of saying they refer to a property itself rather than to that property’s value.
Here’s an example struct storing a name and maximum warp speed of a starship:
struct Starship {
var name: String
var maxWarp: Double
}
let voyager = Starship(name: "Voyager", maxWarp: 9.975)
Keypaths let us refer to the name
or maxWarp
properties without reading them directly, like this:
let nameKeyPath = \Starship.name
let warpKeyPath = \Starship.maxWarp
If you want to read those keypaths on a specific starship, Swift will return you the actual values attached to those properties:
print(voyager[keyPath: nameKeyPath])
print(voyager[keyPath: warpKeyPath])
In practice, this means you can refer to the same property in multiple places all using the same keypath – and if you decide you want a different property you can change it in just one place.
SPONSORED AppSweep by Guardsquare helps developers automate the mobile app security testing process with fast, free scans. By using AppSweep’s actionable recommendations, developers can improve the security posture of their apps in accordance with security standards like OWASP.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 8.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.