NowAttachmentEstrutura de metadados - iOS

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 2 min. de leitura
  • . NowAttachmentMetadados a estrutura fornece funções que permitem codificar e gerenciar metadados de anexo.

    Tabela 1. Propriedades
    Nome Tipo Descrição
    ImageColor Cadeia de caracteres Cor mais dominante na imagem associada.
    ChunkSizeInBytes Inteiro Tamanho de o bloco .

    Unidade: Bytes

    ​Tamanho compactado​em InBytes Inteiro Tamanho compactado do anexo.

    Unidade: Bytes

    criado(a) Data Data em que o anexo foi criado.
    createdBy Cadeia de caracteres Entidade que criou o anexo.
    download URL URL do anexo no ServiceNow instância.
    nomeArquivo Cadeia de caracteres Nome do arquivo de anexo.
    hash Cadeia de caracteres Resumo SHA256 esperado para o anexo.

    Um anexo baixado é validado Comparando seu resumo calculado com este resumo SHA256.

    ImageHeight Inteiro Altura da imagem.

    Unidade: Pixels

    ImageWidth Inteiro Largura da imagem.

    Unidade: Pixels

    É compactado Booliano Sinalizador que indica se o arquivo de anexo está compactado.
    Valores possíveis:
    • Verdadeiro: O anexo está compactado.
    • Falso: Anexo não compactado.
    mimeType Cadeia de caracteres Tipo MIME do anexo.
    ModificationCount Inteiro Número de vezes que o anexo foi modificado.
    sizeInBytes Inteiro Tamanho do anexo.

    Unidade: Bytes

    sourceSysId Cadeia de caracteres Sys_id do arquivo de anexo.
    SourceTableName Cadeia de caracteres Nome da tabela de origem na qual o anexo reside.
    estado Estado de disponibilidade, como Condicionalmente, indisponível, Disponível e pendente.
    sysId Cadeia de caracteres GUID exclusivo de 32 caracteres, que identifica cada registro em um ServiceNow instância.
    marcadores Cadeia de caracteres Lista de marcadores associados ao anexo.
    atualizado Data Data em que o anexo foi modificado pela última vez.
    updatedBy Cadeia de caracteres Entidade que atualizou o anexo.

    NowAttachmentMetadata - encode(para codificador: Encoder)

    Codifica o valor do objeto atual em dados usando o codificador especificado.

    Se o objeto não for codificado em dados, o codificador codificará um vazio contêiner com chave em seu lugar. Esta função também gera um erro se algum valor for inválido para o formato do codificador especificado.

    Tabela 2. Parâmetros
    Nome Tipo Descrição
    para o codificador Codificador Codificador que define a estrutura da saída codificada.
    Tabela 3. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

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

    Cria uma nova instância NowAttachmentMetadata decodificando dados em um objeto do decodificador especificado.

    Este método gera um erro se a leitura do decodificador falhar ou se a leitura de dados estiver corrompida ou for inválida.

    Tabela 4. Parâmetros
    Nome Tipo Descrição
    decodificador Decodificador Decodificador do qual ler dados.
    Tabela 5. Retornos
    Tipo Descrição
    Nenhum(a)

    O exemplo de código a seguir mostra como chamar esta função.

    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)