NowAttachmentMetadata 구조 - iOS
NowAttachmentMetadata 구조는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 함수를 제공합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 평균이미지 색상 | 문자열 | 연결된 이미지에서 가장 주된 색상입니다. |
| chunkSizeInBytes (청크크기인바이트) | 정수 | 청크의 크기입니다. 단위: 바이트 |
| compressedSizeInBytes | 정수 | 첨부 파일의 압축된 크기입니다. 단위: 바이트 |
| 작성됨 | 날짜 | 첨부 파일이 생성된 날짜입니다. |
| ~에 의해 작성됨 | 문자열 | 첨부 파일을 생성한 엔터티입니다. |
| 다운로드 | URL | 인스턴스에 있는 첨부 파일의 URL입니다 ServiceNow . |
| fileName | 문자열 | 첨부 파일의 이름입니다. |
| 해시 | 문자열 | 첨부 파일에 대해 필요한 SHA256 다이제스트입니다. 다운로드된 첨부 파일은 계산된 다이제스트를 이 SHA256 다이제스트와 비교하여 검증 됩니다. |
| 이미지 높이 | 정수 | 이미지의 높이입니다. 단위: 픽셀 |
| 이미지 너비 | 정수 | 이미지의 너비입니다. 단위: 픽셀 |
| is압축됨 | 부울 | 첨부 파일이 압축되었는지 여부를 나타내는 플래그입니다. 가능한 값:
|
| mimeType | 문자열 | 첨부 파일 MIME 유형입니다. |
| 수정 횟수 | 정수 | 첨부 파일이 수정된 횟수입니다. |
| sizeInBytes | 정수 | 첨부 파일의 크기입니다. 단위: 바이트 |
| sourceSysId | 문자열 | 첨부 파일의 Sys_id입니다. |
| sourceTableName | 문자열 | 첨부 파일이 있는 소스 테이블의 이름입니다. |
| 상태 | 조건부, 사용 불가능, 사용 가능, 보류 중 등의 가용성 상태입니다. | |
| sysId | 문자열 | 32자의 고유 GUID(전역 고유 ID)로 ServiceNow , 인스턴스에서 각 기록을 식별합니다. |
| tags | 문자열 | 첨부 파일과 연결된 태그 목록입니다. |
| updated | 날짜 | 첨부 파일이 마지막으로 수정된 날짜입니다. |
| updatedBy | 문자열 | 첨부 파일을 업데이트한 엔터티입니다. |
NowAttachmentMetadata - 인코딩(인코더: 인코더)
지정된 인코더를 사용하여 현재 개체 값을 데이터로 인코딩합니다.
개체를 데이터로 인코딩할 수 없는 경우 인코더는 해당 위치에 빈 키 컨테이너를 인코딩합니다. 또한 이 함수는 지정된 인코더의 형식에 대해 잘못된 값이 있는 경우에도 오류를 throw합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 인코더로 | 인코더 | 인코딩된 출력의 구조를 정의하는 인코더입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.
let query = "active=true^short_descriptionLIKEbroken"
let filter = Filter(query: query)
metadataPublisher(filter: filter, limit: 1)
private func metadataPublisher(filter: Filter?, limit: Int?) {
let publisher = attachmentService.attachmentMetadata(filter: filter, limit: limit)
publisher
.receive(on: DispatchQueue.main)
.encode(encoder: JSONEncoder())
.sink { [weak self] completion in
if case let .failure(error) = completion {
// attachment published failed, return NowDataError
}
} receiveValue: { [weak self] (data) in
// Attachment published successful, return data
}
.store(in: &subscriptions)
}
NowAttachmentMetadata - init(디코더에서: 디코더)
지정된 디코더에서 개체로 데이터를 디코딩하여 새 NowAttachmentMetadata 인스턴스를 만듭니다.
이 메서드는 디코더에서 읽기가 실패하거나 데이터 읽기가 손상되었거나 잘못된 경우 오류를 throw합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 디코더 | 디코더 | 데이터를 읽을 디코더입니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.
guard
let metadataHeader = response.httpResponse?.value(forHTTPHeaderField: NowAttachment.attachmentMetadataHeaderKey),
let metadataHeaderData = metadataHeader.data(using: .utf8) else {
throw NowDataError.missingAttachmentMetadata
}
let metadata = try coder.decode(NowAttachmentMetadata.self, from: metadataHeaderData)
let attachment = NowAttachment(metadata: metadata, data: response.data)