Slide 13
Slide 13 text
14
import Foundation
import CoreSpotlight
import MobileCoreServices
final class SpotlightManager {
func save(_ movie: Movie) {
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeData as String)
// ᶃλΠτϧ
attributeSet.title = movie.title
// ᶄઆ໌จ
attributeSet.contentDescription = movie.summary
// ᶅը૾
attributeSet.thumbnailData = movie.thumbnail?.pngData()
// Ωʔϫʔυʢදࣔ͞Εͳ͍͕ɺλΠτϧઆ໌จʹೖͬͯͳ͍จݴΛ͜͜ʹೖΕ͓͚ͯɺݕࡧͨ࣌͠ʹҾ͔͔ͬΔΑ͏ʹͳΔʣ
attributeSet.keywords = movie.actorNames
/*
uniqueIdentifierAppDelegateͰऔΓग़͢͜ͱ͕Ͱ͖ΔͷͰɺ
Spotlightݕࡧܦ༝ͰΞϓϦΛ։͍ͨ࣌ͷͨΊͷURLεΩʔϜΛೖΕ͓ͯ͘
*/
let item = CSSearchableItem(
uniqueIdentifier: "my-app://open/movie?id=\(movie.id)",
domainIdentifier: "my-app",
attributeSet: attributeSet
)
CSSearchableIndex.default().indexSearchableItems([item], completionHandler: nil)
}
}