2016-10-22 6 views
1

이미지를 얻으려면 swift 2.3Realm databaseKingfisher framework을 입력해야합니다. 나는 그것 JSONKingfisher에서 영역에 NSData로 이미지를 쓰는 방법은 무엇입니까?

let urls = NSURL(fileURLWithPath: newsRealm.newsImage) 
let prefetcher = ImagePrefetcher(urls: [urls], optionsInfo: nil, progressBlock: nil, completionHandler: { 
(skippedResources, failedResources, completedResources) ->() in 
print("These resources are prefetched: \(completedResources)") 
}) 
prefetcher.start() 

에 의해 서버에서 이미지를 얻을 성공적인이지만, Realm database의 이미지는 Kingfisher에서 Realm

NSData 등의 영역 클래스에 수신 된 데이터를 작성하는 방법, NSData입니다 :

class News: Object { 
    dynamic var newsImage: String = "" 
    dynamic var images: NSData? 
} 

안녕하세요! 내 데이터베이스에 내 이미지를 쓰기 어차피 내가 할 :

let urls = NSURL(fileURLWithPath: newsRealm.newsImage) 
let prefetcher = ImagePrefetcher(urls: [urls], optionsInfo: nil, progressBlock: nil, completionHandler: 
{(skippedResources, failedResources, completedResources) ->() in 
print("These resources are prefetched: (completedResources.description)") 
let images: [NSData] = completedResources 
newsRealm.images = images 

답변

1

(here 설명 된대로) 당신이 데이터를 검색 할 수 있습니다 설정 캐시 URL, 에 사용 optionsInfo: [.TargetCache(myCache)] 또는 어떤 될 수 UIImage를 검색하는 exampleretrieveImage 를 사용 here과 같이 NSData으로 변환됩니다.

+0

안녕하세요! 내 데이터베이스에 내 이미지를 쓸 수 없어 : URL = NSURL (fileURLWithPath : newsRealm.newsImage) letfetcher = ImagePrefetcher (urls : [urls], optionsInfo : nil, progressBlock : nil, completionHandler : { (skippedResources, 의 print ("다음 리소스는 프리 페치 됨 : \ (completedResources.description)")의 이미지를 보냅니다. [NSData] = completedResources newsRealm.images = images – Zhanserik

+0

@Zhan, 나는 무엇을 읽지 않았습니까? 나는 – Vyacheslav

+0

라고 질문을 업데이트했습니다. – Zhanserik

0

completedResourcesNSData의 배열이 아닙니다. completedResourcesResource의 배열입니다. ResourcecacheKey이고 downloadURL입니다. 캐시에서 cacheKey을 사용하여 이미지를 검색 한 다음 이미지를 NSData으로 변환해야합니다. 그런 다음 데이터를 영역에 저장하십시오.

let images: [NSData] = completedResources.map { (resource) -> NSData in 
    let image = ImageCache.default.retrieveImageInDiskCache(forKey: resource.cacheKey)! 
    return UIImagePNGRepresentation(image) 
}