首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CoreSpotlight索引-图像加载

CoreSpotlight索引-图像加载
EN

Stack Overflow用户
提问于 2016-03-01 11:11:13
回答 1查看 500关注 0票数 1

我正在使用CSSearchableItem框架为CoreSpolight分配值。我想优化图像加载。

代码语言:javascript
复制
func setupSearchableContent(moviesInfo:NSMutableArray)
{
    if #available(iOS 9.0, *)
    {
        var searchableItems = [CSSearchableItem]()

        for i in 0...(moviesInfo.count - 1)
        {

            let searchableItemAttributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)

            // Set the title
            searchableItemAttributeSet.title = (moviesInfo[i] as! ICFAssetObject).title!

            // Movie Image
            if let tempPosterImage = (moviesInfo[i] as! ICFAssetObject).portraitImage()
            {
                searchableItemAttributeSet.thumbnailData = getImageFromURL(tempPosterImage) //imageData
            }

            // Set the Description
            searchableItemAttributeSet.contentDescription = (moviesInfo[i] as! ICFAssetObject).description!

            //Set the Link and Slug
            let values = NSString(format: "%@||%@", (moviesInfo[i] as! ICFAssetObject).link!,(moviesInfo[i] as! ICFAssetObject).slug!)

            let searchableItem = CSSearchableItem(uniqueIdentifier:values as String ,domainIdentifier: "taimur_assets", attributeSet: searchableItemAttributeSet)

            searchableItem.expirationDate = NSDate.distantFuture()
            searchableItems.append(searchableItem)

            CSSearchableIndex.defaultSearchableIndex().indexSearchableItems([searchableItem])
            {
                (error: NSError?) -> Void in

                if let error = error
                {
                    print("Indexing error: \(error.localizedDescription)")
                }
                else
                {
                    print("Search item successfully indexed!")
                }
            }
        }
    }
    else
    {
        // Fallback on earlier versions
    }
}
func getImageFromURL(var fileURL:String) -> NSData
{
     fileURL = NSString(format: "%@/180x180", fileURL) as String
     let data:NSData = NSData(contentsOfURL: NSURL(string: fileURL)!)!
     return data
}

这需要大量的时间和应用程序挂起,而图像被下载。

thumbnailURL不工作。不分配图像

当我在后台下载它的时候。它不将图像分配给CSSearchableIndex,也不显示图像

代码语言:javascript
复制
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0))
{
      let data:NSData = self.getImageFromURL(movie.Image) //imageData
      dispatch_async(dispatch_get_main_queue())
      {
           searchableItemAttributeSet.thumbnailData = data
      }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-02 06:01:46

开始吧!发行固定

代码语言:javascript
复制
let priority = DISPATCH_QUEUE_PRIORITY_BACKGROUND
dispatch_async(dispatch_get_global_queue(priority, 0))
{
      let data:NSData = self.getImageFromURL(movie.Image) //imageData
      dispatch_async(dispatch_get_main_queue())
      {
           searchableItemAttributeSet.thumbnailData = data
      }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35721329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档