2015-10-26 17 views
7

Capisco che per ottenere immagini dal catalogo delle risorse posso usare UIImage (denominato: "fileName") per farlo.Ottieni dati dal catalogo XCAsset

tuttavia, cosa succede se ottengo DATI dal catalogo XCAsset? Non riesco a capirlo.

ho cercato,

let url = NSBundle.mainBundle().URLForResource("fileName", withExtension: nil) 
let data = NSData(contentsOfURL: url!) 

Ma è pari a zero. Non so come ottenere dati dal catalogo XCAssets. Se qualcuno mi può aiutare (googling non ha aiutato) per favore fatemi sapere che sarò molto grato!

Aggiornamento:

Perché sto cercando di ottenere i dati da un catalogo di asset? Ho trascinato una gif animata nel catalogo delle risorse. E il catalogo delle risorse lo interpreta come DATA. Questo è il motivo per cui sto cercando di estrarre i dati dal catalogo delle risorse.

Aggiornamento: Questa è una schermata della cartella Assets.xcassets.

image Ha un file chiamato "_Loading" e sulla destra è considerato un "Set di dati". Non sono sicuro di come ottenere il set di dati dal catalogo delle risorse.

+0

Non si ottengono dati da un catalogo di risorse. I cataloghi di asset hanno immagini, non dati. Il codice che hai postato è per la lettura di un file dal bundle di risorse, non una risorsa. – rmaddy

+0

Come e perché metti i dati in XCAssets? – zaph

+0

Che problema stai avendo con il codice che hai postato? In generale è corretto per la lettura di un file dal pacchetto di risorse. Assicurati solo di specificare il nome file e l'estensione appropriati. E ricorda che il caso conta. – rmaddy

risposta

38

Ho intenzione di rispondere alla mia stessa domanda.

Da iOS 9, il catalogo delle risorse consente più di semplici immagini. Consentono set di dati. Per ottenere dati dal Catalogo delle risorse, è necessario utilizzare la classe NSDataAsset.

Esempio: Si supponga di avere un asset di dati denominato "CoolJSON"

if let asset = NSDataAsset(name: "CoolJSON") { 
    let data = asset.data 
    let d = try? NSJSONSerialization.JSONObjectWithData(data, options: []) 
} 

In questo esempio ho girato un oggetto NSData in un JSON. immagine gif

NSDataAsset class reference

+0

Freddo. Non lo sapevo. –

+1

c'è una configurazione speciale che ho bisogno di fare ?, perché quando controllo la risorsa dati restituisce nil quindi non posso accedere al contenuto. – Klinkert0728

+0

@ Klinkert0728 nessuna configurazione speciale. Che serie di dati stai cercando di ottenere? – DerrickHo328

0

Carica da file Assets.xcassets. Questo è lo stesso per il caricamento dei file JSON.

  1. NUOVO: 【nuovo set di dati】 cassa un insieme di dati e rinominare "divertente" nella cartella Assets.xcassets. va bene, il file gif viene aggiunto alla cartella Assets.xcassets. enter image description here

  2. USO: dati (NSData *)::

    NSDataAsset *asset = [[NSDataAsset alloc] initWithName:@"funny"]; 
    self.gifImageView.image = [UIImage sd_animatedGIFWithData:asset.data];           
    
    • (UIImage *) sd_animatedGIFWithData è una categoria UIImage + GIF caricamento delle immagini gif in SDWebImage per.