2017-08-30 1 views
0

Je ne parviens pas à accéder aux images contenues dans un catalogue d'actifs après son téléchargement via NSBundleResourceRequest (ressource à la demande).Comment accéder au catalogue d'actifs (images) après téléchargement via NSBundleResourceRequest?

Mon code, disons l'image le nom du jeu est "snow_4" avec la demande étiquette de ressources "balise1"

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 
    } 
}]; 

Ci-dessous mon rapport sur les disques, s'il vous plaît noter que [UIImage imageNamed: @ "snow_3"] (la mention « En cours d'utilisation ») renvoie un objet correct mais pas des images qui sont marquées comme « Downloaded »

Disk Report

Appréciant votre temps et votre aide!

Merci, Mars

+0

Vérifiez ma réponse [ici] [1] [1]: Salut https://stackoverflow.com/a/48327239/6534130 –

Répondre

0

faire

image = [UIImage imageNamaed: @ "snow_4" inBundle: [resourceRequest ensemble]];

+0

vince, je vous remercie pour votre réponse. J'ai essayé mais ça ne marche pas. Les ressources sont toujours marquées comme «téléchargées» et ne sont pas accessibles. –

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 
      } 
     } 
    } 
}