1
我閱讀了一些教程,發現NSUserActivity
爲用戶進行活動時的索引信息,Core Spotlight
爲應用中的一組內容數據索引。使用NSUserActivity或核心聚光燈
使用NSUserActivity
var activity = NSUserActivity(activityType: "com.example.demo.searchapi")
activity.title = contactEntity.name
activity.userInfo = ["id": contactEntity.uid]
activity.eligibleForSearch = true
activity.keywords = NSSet(array: [contactEntity.name,contactEntity.phoneNumber, contactEntity.email]) as! Set
activity.becomeCurrent()
使用核心聚光燈
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeContact as String)
attributeSet.title = contactEntity.name
attributeSet.relatedUniqueIdentifier = contactEntity.uid
let searchableItem = CSSearchableItem(uniqueIdentifier: contactEntity.uid, domainIdentifier: "com.example.demo.searchapi", attributeSet: attributeSet)
CSSearchableIndex.defaultSearchableIndex().indexSearchableItems(searchableItems) { error in
if let error = error {
print("Error indexing: \(error)")
} else {
print("Indexed.")
}
但我不認爲有兩個解析結果之間的差異。如果用戶進行一項活動,我可以使用Core Spotlight
,而不是NSUserActivity
。它給了我相同的結果。
那麼,爲什麼蘋果必須提供兩個具有相同結果的差異解決方案?
iOS 9中的NSUserActivity具有'contentAttributeSet',它的類型爲'CSSearchableItemAttributeSet' – onmyway133
我知道它。但是CSSearchableItem也可以使用CSSearchableItemAttributeSet參數初始化。那麼爲什麼Apple提供兩個API(NSUserActivity和Core Spotlight)具有相同的結果。我沒有發現任何差異 – huync
核心Spotlight不支持公共索引,而NSUserActivity會。 NSUserActivity可用於設備和公共索引。 – PGDev