我正在尝试构建一个使用 CoreSpotlight 使内容在 iOS Spotlight 中可搜索的测试应用程序。deleteAllSearchableItems
目前,我将其设置为每当用户点击刷新按钮时,它就会发出服务器请求indexSearchableItems
(可能不是最好的方法,但目前最简单,因为我仍处于弄清楚这一点的开始阶段)。
下面是我的代码。
var searchableItems: [CSSearchableItem] = []
for i in 0 ..< self._ids.count {
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeItem as String)
attributeSet.title = self._titles[i]
attributeSet.contentDescription = self._descriptions[i]
let searchableItem = CSSearchableItem(uniqueIdentifier: self._ids[i], domainIdentifier: "com.domain.appname", attributeSet: attributeSet)
searchableItems.append(searchableItem)
}
CSSearchableIndex.default().deleteAllSearchableItems(completionHandler: { (error) -> Void in
CSSearchableIndex.default().indexSearchableItems(searchableItems) { (error) -> Void in
if error != nil {
print(error?.localizedDescription ?? "Error")
}
}
})
我要做的下一件事是我有一组名为self._images
. 该数组内部是一个空字符串 ( ""
) 或一个 URL 字符串 ( "https://mywebsite.com/image.png"
)。
目前我可以使用下面的代码将 UIImageView 的图像设置为该 URL 处的图像,使用AlamofireImage。
if (self._images[0] != "") {
myImageView.af_setImage(withURL: URL(string: self._images[0])!)
}
如何将相同的图像放入 CoreSpotlight 属性集中?
我假设attributeSet.thumbnailData.af_setImage(withURL: imagedownloadURL)
不会工作。特别是因为它是异步的。
整合它的最简单方法是什么?
我已经尝试了一些东西,例如 for 循环等,但最大的问题是异步,我似乎无法找到解决方案,因为它是异步的,而且我有多个项目。
非常感谢您!