我花了大量的时间来发现NSUserActivity在CoreSpotlight,上的好处,无论我是否实际找不到任何东西。
实际上,它不能索引我们的项目,我们通过NSUserActivity.设置我已经在下面附上了我的片段,这应该是按照苹果的文档工作,但它不会。
let personName = "Jon Doe"
let activity = NSUserActivity(activityType: "com.SearchAPIs.test”)
activity.userInfo = ["name": "Jon Doe"]
activity.title = person.name
let keywords = personName.componentsSeparatedByString(" ")
activity.keywords = Set(keywords)
activity.eligibleForSearch = true
activity.eligibleForPublicIndexing = true
activity.expirationDate = NSDate().dateByAddingTimeInterval(16666600)
activity.becomeCurrent()我想找到答案
为什么我们需要在搜索中使用NSUserActivity,因为CoreSpotlight是可能的
发布于 2015-08-25 12:11:56
根据苹果公司的文件
要确保活动及其元数据被索引,必须保持对该活动的强引用,直到将其添加到索引中为止。有两种方法可以做到这一点:第一种方法是将活动分配给创建活动的控制器对象中的属性。第二种方法是使用userActivity对象的UIResponder属性。如果使用第二种方法,则需要在userInfo :方法中设置元数据(例如userInfo属性中的信息);否则,您在活动上设置的元数据将不会持久。
在建立索引之前,您的活动将被取消分配,最好使用self来保留。
你第二个问题的答案对我来说仍然是个谜。
这可能就像性能一样,索引中没有条目,更重要的是,公共索引( CoreSpotlight no offer.We )需要等待更多时间才能得到问题的答案。
https://stackoverflow.com/questions/32134733
复制相似问题