HKAttachment
A file that is attached to a sample in the HealthKit store.
Declaration
class HKAttachmentOverview
To access the attachment’s data, get a data reader from the attachment store for each attachment.
let attachmentStore = HKAttachmentStore(healthStore: store)
let attachments: [HKAttachment]
do {
attachments = try await attachmentStore.attachments(for: prescription)
} catch {
// Handle the error here.
fatalError("*** An error occurred while accessing the attachments for a prescription: \(error.localizedDescription) ***")
}
// Use the attachments here.
print("*** \(attachments.count) attachments found ***")
for attachment in attachments {
// Get a data reader for the attachment.
let dataReader = attachmentStore.dataReader(for: attachment)
// Read the data here.
}You can then asynchronously access the whole data object.
let data: Data
do {
data = try await dataReader.data
} catch {
// Handle the error here.
fatalError("*** An error occurred while accessing the attachment's data. \(error.localizedDescription) ***")
}Alternatively, you can access the file’s contents as an asynchronous sequence of bytes.
// Asynchronously access the attachment's bytes.
var data = Data()
do {
for try await byte in dataReader.bytes {
// Use the bytes here.
data.append(byte)
}
} catch {
// Handle the error here.
fatalError("*** An error occurred while reading the attachment's data: \(error.localizedDescription) ***")
}