ios9中支援為app中的内容做索引以支援spotlight搜尋,感覺是個很有心意的功能。需要提到的是這些索引是存在本地裝置中的,不會同步到icoloud中,更換了裝置就沒有了。
效果就是這樣:

建立支援搜尋的内容
支援搜尋的内容的類是cssearchableitem。
可以展示的屬性有标題,一段描述文字,還有縮略圖。這裡建議給每個item設定一個過期時間(expirationdate)。
首先建立表示一個配置展示内容的對象cssearchableitemattributeset
attributeset也支援電話号碼,和地理坐标。右邊會有對應的動作,如果是支援導航會有一個箭頭。(因為我的app裡不需要這功能,我自己沒有試過)
建立cssearchableitem
uniqueidentifier相當于這條資料的id。domainidentifier則表示相關的域。蘋果還提供了一組api對這些索引進行修改删除操作,domainidentifier可以當做參數,比如可以講一個域下的所有索引删除。
将cssearchableitem添加至系統
tips
大部分的app可能還要相容ios8,這裡介紹下swift下的判斷方法。
如果是在一個方法裡要使用ios9的api,使用下面來判斷(xcode7也會提醒你)。
如果是自己寫的一整個方法想表示隻在ios9可用,用下面的關鍵字加在方法頭表示
直接貼我的項目代碼了。
使用者搜尋後選中打開app的處理
在app delegate裡添加這個回調就好了。
在oc下的方法是這個
通過這個可以取到建立cssearchableitem時設定的identifier
接着就可以用這個identifier取出對應的資料,進行處理了。