NowAttachmentMetadata-Struktur – iOS

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 2 Minuten Lesedauer
  • Die NowAttachmentMetadata- Struktur bietet Funktionen, mit denen Sie Anhangmetadaten codieren und verwalten können.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    durchschnittsbildfarbe Zeichenfolge Die dominanteste Farbe im zugeordneten Bild.
    BlockgrößeInBytes Ganzzahl Größe von des Blocks.

    Einheit: Byte

    komprimiert​Größe​InBytes Ganzzahl Komprimierte Größe des Anhangs.

    Einheit: Byte

    erstellt Datum Datum, an dem der Anhang erstellt wurde.
    Erstellt von Zeichenfolge Entität, die den Anhang erstellt hat.
    Download URL URL des Anhangs in der Instanz ServiceNow
    fileName Zeichenfolge Name der Anhangdatei.
    hash Zeichenfolge Erwarteter SHA256-Digest für den Anhang.

    Ein heruntergeladener Anhang wird validiert, indem sein berechneter Digest mit diesem SHA256-Digest verglichen wird.

    imageHeight Ganzzahl Höhe des Bildes.

    Einheit: Pixel

    imageWidth Ganzzahl Breite des Bildes.

    Einheit: Pixel

    istkomprimiert Boolean Kennzeichnung, die angibt, ob die Anhangdatei komprimiert ist.
    Mögliche Werte:
    • „wahr“: Anhang ist komprimiert.
    • „falsch“: Anhang nicht komprimiert.
    mimeType Zeichenfolge MIME-Typ des Anhangs.
    modificationCount Ganzzahl Anzahl der Male, die der Anhang geändert wurde.
    sizeInBytes Ganzzahl Größe des Anhangs

    Einheit: Byte

    sourceSysId Zeichenfolge Sys_id der Anhangdatei.
    sourceTableName Zeichenfolge Name der Quelltabelle, in der sich der Anhang befindet.
    Status Verfügbarkeitsstatus, z. B. bedingt, nicht verfügbar, verfügbar und ausstehend.
    sysId Zeichenfolge Eindeutige 32-stellige Globally Unique ID (GUID), die jeden Datensatz in einer Instanz ServiceNow identifiziert.
    tags Zeichenfolge Liste der Tags, die dem Anhang zugeordnet sind.
    aktualisiert Datum Datum, an dem der Anhang zuletzt geändert wurde.
    updatedBy Zeichenfolge Entität, die den Anhang aktualisiert hat.

    NowAttachmentMetadata – encode (an Encoder: Encoder)

    Codiert den aktuellen Objektwert mit dem angegebenen Encoder in Daten.

    Wenn das Objekt nicht in Daten codiert werden kann, codiert der Encoder stattdessen einen leeren Schlüsselcontainer. Diese Funktion löst auch einen Fehler aus, wenn Werte für das Format des angegebenen Encoders ungültig sind.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    an Encoder Encoder Codierer, der die Struktur der codierten Ausgabe definiert.
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.

    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 (von Decoder: Decoder)

    Erstellt eine neue NowAttachmentMetadata-Instanz, indem Daten aus dem angegebenen Decoder in ein Objekt decodiert werden.

    Diese Methode löst einen Fehler aus, wenn das Lesen vom Decoder fehlschlägt oder wenn die gelesenen Daten beschädigt oder anderweitig ungültig sind.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Decoder Decoder Decoder, aus dem Daten gelesen werden sollen.
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Funktion aufgerufen wird.

    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)