2017-08-30 5 views
0

Ich kann nicht auf Bilder innerhalb eines Asset-Katalogs zugreifen, nachdem dieser über NSBundleResourceRequest (On-Demand-Ressource) heruntergeladen wurde.Zugriff auf Asset Catalog (Bilder) nach dem Download über NSBundleResourceRequest?

Mein Code, sagt der Bildsatzname ist "snow_4" On-Demand-Ressource-Tag "tag1"

NSBundleResourceRequest* resourceRequest = [[NSBundleResourceRequest alloc] initWithTags:[NSSet setWithObjects:@"tag1", nil]]; 

[resourceRequest conditionallyBeginAccessingResourcesWithCompletionHandler: 
^(BOOL resourcesAvailable){ 
    // if resource is not available download it 
    if (!resourcesAvailable) { 
     [resourceRequest beginAccessingResourcesWithCompletionHandler: 
      ^(NSError * __nullable error){ 
       if(!error){      
        UIImage* image = [UIImage imageNamed:@"snow_4"]; // image is null 
       } 
      }]; 
    }else{    
     UIImage* image = [UIImage imageNamed:@"snow_4"]; // image is null 
    } 
}]; 

Unten ist mein Plattenbericht Bitte beachten Sie, dass [UIImage imagenamed: @ "snow_3"] (als ‚in Gebrauch‘ markiert) ein richtiges Objekt zurückgibt, aber nicht Bilder, die als ‚heruntergeladen‘

Disk Report

Appreciating Ihre Zeit und hilft, sind farblich hervorgehoben!

Danke, Mars

+0

Überprüfen Sie meine Antwort [hier] [1] [1]: https://stackoverflow.com/a/48327239/6534130 –

Antwort

0

tun, um diese

image = [UIImage imageNamaed: @ "snow_4" inBundle: [resourceRequest bündeln]];

+0

Hallo vince, vielen Dank für Ihre Antwort. Ich habe es versucht, aber es funktioniert nicht. Die Ressourcen sind weiterhin als "Heruntergeladen" gekennzeichnet und können nicht aufgerufen werden. –

0
let tags = NSSet(array: ["tag1","tag2"]) 
let resourceRequest = NSBundleResourceRequest(tags: tags as! Set<String>) 
resourceRequest.conditionallyBeginAccessingResourcesWithCompletionHandler {(resourcesAvailable: Bool) -> Void in 
    if resourcesAvailable { 
     // Do something with the resources 
    } else { 
     resourceRequest.beginAccessingResourcesWithCompletionHandler {(err: NSError?) -> Void in 
      if let error = err { 
       print("Error: \(error)") 
      } else { 
       // Do something with the resources 
      } 
     } 
    } 
}