2017-08-30 6 views
0

NSBundleResourceRequest(オンデマンドリソース)からダウンロードしたアセットカタログ内の画像にはアクセスできません。 (:NSBundleResourceRequestからダウンロードした後、資産カタログ(画像)にアクセスするには?

私のコード、画像セット名は、需要のリソースタグ "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 
    } 
}]; 

上で "snow_4" であると言うが、私のディスクレポートで、その[ "snow_3" @ UIImage imageNamed]を注意してください「使用中」としてマークされている)あなたの時間と助けを鑑賞

Disk Report

「をダウンロードした」としてマークされている画像を正しいオブジェクトを返しますがありません!

おかげで、 火星

+0

[こちら]私の答えをチェックし、[1] [1]:https://stackoverflow.com/a/48327239/6534130 –

答えて

0

この

画像=を行う[UIImage imageNamaed:@ "snow_4" inBundle:[resourceRequestバンドル]];

+0

こんにちはビンス、お返事ありがとうございました。私はそれを試したが、それは動作しません。リソースは「ダウンロード済み」とマークされており、アクセスすることはできません。 –

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 
      } 
     } 
    } 
} 
関連する問題