我读了一些教程,发现当用户进行活动时,NSUserActivity用于索引信息,Core Spotlight用于在app中索引一组内容数据。
使用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。给我同样的结果。
那么,为什么苹果必须提供两个结果相同的不同解决方案呢?
发布于 2016-06-13 21:09:49
我现在把核心聚光灯和NSUserActivity包括在我的应用程序中,我开始学习一些不同之处。
正如@PGDev在您的评论中所指出的,NSUserActivity可以被设置为公开索引(在Apples服务器上),这将有助于在其他用户的搜索结果上显示。而核心聚光灯只是每台设备。
应用于我的应用程序的NSUserActivity最大的好处在于,用户越多地使用相同的activity,比如阅读同样的新闻故事,这个索引就越受欢迎,并且能够产生有益的结果。苹果-提高你的搜索结果
NSUserActivity时被捕获)https://stackoverflow.com/questions/34647255
复制相似问题