CoreSpotlight를 사용하여 iOS Spotlight에서 콘텐츠를 검색 할 수있는 테스트 응용 프로그램을 만들려고합니다. 현재 사용자가 새로 고침 버튼을 눌러 서버 요청을하면 언제든지 deleteAllSearchableItems
indexSearchableItems
(아마도 가장 좋은 방법은 아니지만 가장 쉬운 방법은 지금 당장 나오지 않습니다. 아직 생각해 내기 시작 단계이기 때문에).iOS CoreSpotlight URL의 축소판 그림
아래 코드는 내 코드입니다. 내가 할 노력하고있어
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"
)이 있습니다.
현재 아래 코드를 사용하여 해당 URL의 이미지에 UIImageView의 이미지를 설정하고 AlamofireImage을 사용할 수 있습니다.
if (self._images[0] != "") {
myImageView.af_setImage(withURL: URL(string: self._images[0])!)
}
어떻게 CoreSpotlight 속성 집합에 동일한 이미지를 가져올 수 있습니까?
나는 attributeSet.thumbnailData.af_setImage(withURL: imagedownloadURL)
이 작동하지 않는다고 가정합니다. 특히 비동기식이기 때문에 특히 그렇습니다.
이것을 통합하는 가장 쉬운 방법은 무엇입니까?
루프와 같은 몇 가지를 시도했지만 가장 큰 문제는 비동기이며 비동기 적이기 때문에 해결 방법을 찾을 수없는 것처럼 보입니다. 여러 항목이 있습니다.
미리 감사드립니다.
를 캐시를 사용하고 있기 때문에 그냥 캐시 된 이미지의 경로를 얻을 수 SDWebImage을 사용하고 유의하시기 바랍니다? 코드 예제가 정확히 작동합니까? 왜 이것이 최상의 솔루션이 아닌가? 전반적으로 더 자세하게 설명하면 도움이 될 것입니다. –
몇 가지 세부 정보를 추가했습니다 .. – Bilal
세부 사항이 유용했습니다. 스위프트 측면에서 비동기식 동기화와 관련된 동기화를 계속 시도하고 있습니다. 나는 지금 당신의 대답에 투표 할 것입니다. 나는 현상금을 수여하지 않으며 현상금이 끝날 때까지 답변을 받아 들일 수 없습니다. 그러나 나는 어떤 질문에 현상금을 수여하고 끝난 후에 어떤 대답을 받아 들일 것이다. 대단히 감사합니다. –