Protocolswift 6.0.1Swift
Identifiable
A class of types whose instances hold the value of an entity with stable identity.
- iOS
- 13.0+
- macOS
- 10.15+
- tvOS
- 13.0+
- watchOS
- 6.0+
protocol Identifiable<ID>
Use the Identifiable
protocol to provide a stable notion of identity to a class or value type. For example, you could define a User
type with an id
property that is stable across your app and your app’s database storage. You could use the id
property to identify a particular user even if other data fields change, such as the user’s name.
Identifiable
leaves the duration and scope of the identity unspecified. Identities can have any of the following characteristics:
Guaranteed always unique, like UUIDs.
Persistently unique per environment, like database record keys.
Unique for the lifetime of a process, like global incrementing integers.
Unique for the lifetime of an object, like object identifiers.
Unique within the current collection, like collection indices.
It’s up to both the conformer and the receiver of the protocol to document the nature of the identity.
Conforming to the Identifiable Protocol
Identifiable
provides a default implementation for class types (using ObjectIdentifier
), which is only guaranteed to remain unique for the lifetime of an object. If an object has a stronger notion of identity, it may be appropriate to provide a custom implementation.
Requirements
Type members
associatedtype ID
A type representing the stable identity of the entity associated with an instance.
Instance members
var id: Self.ID
The stable identity of the entity associated with this instance.
Citizens in Swift
Instance members
Available in Distributed
Subtypes
protocol DistributedActor
Common protocol to which all distributed actors conform implicitly.