NowAttachmentMetadata 構造体:iOS

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:4分
  • NowAttachmentMetadata 構造体は、添付ファイルのメタデータをエンコードおよび管理できる関数を提供します。

    表 : 1. プロパティ
    名前 タイプ 説明
    averageImageColor 文字列 関連付けられた画像の最も優勢な色。
    chunkSizeInBytes 整数 チャンクのサイズ。

    単位:バイト

    compressedSizeInBytes 整数 添付ファイルの圧縮サイズ。

    単位:バイト

    作成完了 日付 添付ファイルが作成された日付。
    createdBy 文字列 添付ファイルを作成したエンティティ。
    ダウンロード URL ServiceNowインスタンスの添付ファイルの URL。
    fileName 文字列 添付ファイルの名前。
    ハッシュ 文字列 添付ファイルに想定される SHA256 ダイジェスト。

    ダウンロードされた添付 ファイルは、 計算されたダイジェストをこの SHA256 ダイジェストと比較して検証されます。

    イメージの高さ 整数 画像の高さ。

    単位:ピクセル

    画像幅 整数 画像の幅。

    単位:ピクセル

    圧縮済み ブール 添付ファイルが圧縮されているかどうかを示すフラグ。
    可能な値:
    • true:添付ファイルは圧縮されています。
    • false:添付ファイルは圧縮されていません。
    mime タイプ 文字列 添付ファイルの MIME タイプ。
    変更カウント 整数 添付ファイルが変更された回数。
    sizeInBytes 整数 添付ファイルのサイズ。

    単位:バイト

    sourceSysId 文字列 添付ファイルのSys_id。
    ソーステーブル名 文字列 添付ファイルが存在するソーステーブルの名前。
    状況 条件付き、利用不可、利用可能、保留中などの可用性ステータス。
    sysId 文字列 ServiceNowインスタンス内の各レコードを識別する一意の 32 文字のグローバル一意識別子 (GUID)。
    tags 文字列 添付ファイルに関連付けられているタグのリスト。
    更新日時 日付 添付ファイルが最後に変更された日付。
    updatedBy 文字列 添付ファイルを更新したエンティティ。

    NowAttachmentMetadata - encode(エンコーダーへ:エンコーダー)

    指定されたエンコーダーを使用して、現在のオブジェクト値をデータにエンコードします。

    オブジェクトがデータにエンコードされない場合、エンコーダーは代わりに空の キー付きコンテナー をエンコードします。この関数は、指定されたエンコーダーの形式に無効な値がある場合にもエラーをスローします。

    表 : 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 インスタンスを作成します。

    このメソッドは、デコーダーからの読み取りが失敗した場合、またはデータの読み取りが破損している場合、またはその他の方法で無効な場合にエラーをスローします。

    表 : 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)