NowAttachmentMetadata 구조 - iOS

  • 릴리스 버전: Washingtondc
  • 업데이트 날짜 2024년 02월 01일
  • 읽기4분
  • NowAttachmentMetadata 구조는 첨부 파일 메타데이터를 인코딩하고 관리할 수 있는 함수를 제공합니다.

    표 1. 속성
    이름 유형 설명
    평균이미지 색상 문자열 연결된 이미지에서 가장 주된 색상입니다.
    chunkSizeInBytes (청크크기인바이트) 정수 청크의 크기입니다.

    단위: 바이트

    compressedSizeInBytes 정수 첨부 파일의 압축된 크기입니다.

    단위: 바이트

    작성됨 날짜 첨부 파일이 생성된 날짜입니다.
    ~에 의해 작성됨 문자열 첨부 파일을 생성한 엔터티입니다.
    다운로드 URL 인스턴스에 있는 첨부 파일의 URL입니다 ServiceNow .
    fileName 문자열 첨부 파일의 이름입니다.
    해시 문자열 첨부 파일에 대해 필요한 SHA256 다이제스트입니다.

    다운로드된 첨부 파일은 계산된 다이제스트를 이 SHA256 다이제스트와 비교하여 검증 됩니다.

    이미지 높이 정수 이미지의 높이입니다.

    단위: 픽셀

    이미지 너비 정수 이미지의 너비입니다.

    단위: 픽셀

    is압축됨 부울 첨부 파일이 압축되었는지 여부를 나타내는 플래그입니다.
    가능한 값:
    • true: 첨부 파일이 압축됩니다.
    • false: 첨부 파일이 압축되지 않았습니다.
    mimeType 문자열 첨부 파일 MIME 유형입니다.
    수정 횟수 정수 첨부 파일이 수정된 횟수입니다.
    sizeInBytes 정수 첨부 파일의 크기입니다.

    단위: 바이트

    sourceSysId 문자열 첨부 파일의 Sys_id입니다.
    sourceTableName 문자열 첨부 파일이 있는 소스 테이블의 이름입니다.
    상태 조건부, 사용 불가능, 사용 가능, 보류 중 등의 가용성 상태입니다.
    sysId 문자열 32자의 고유 GUID(전역 고유 ID)로 ServiceNow , 인스턴스에서 각 기록을 식별합니다.
    tags 문자열 첨부 파일과 연결된 태그 목록입니다.
    updated 날짜 첨부 파일이 마지막으로 수정된 날짜입니다.
    updatedBy 문자열 첨부 파일을 업데이트한 엔터티입니다.

    NowAttachmentMetadata - 인코딩(인코더: 인코더)

    지정된 인코더를 사용하여 현재 개체 값을 데이터로 인코딩합니다.

    개체를 데이터로 인코딩할 수 없는 경우 인코더는 해당 위치에 빈 키 컨테이너를 인코딩합니다. 또한 이 함수는 지정된 인코더의 형식에 대해 잘못된 값이 있는 경우에도 오류를 throw합니다.

    표 2. 매개변수
    이름 유형 설명
    인코더로 인코더 인코딩된 출력의 구조를 정의하는 인코더입니다.
    표 3. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    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합니다.

    표 4. 매개변수
    이름 유형 설명
    디코더 디코더 데이터를 읽을 디코더입니다.
    표 5. 반환
    유형 설명
    없음

    다음 코드 예제에서는 이 함수를 호출하는 방법을 보여 줍니다.

    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)