Search와 관련된 3 APIs
- NSUserActivity
- Web Markup
- CoreSpotlight => 이 중에서 Core Spotlight를 자세히 볼 것이다.
Core Spotlight API 사용하기
- Core Spotlight에 엔트리 저장하기
1. iOS 9에서 사용 가능한 Search API 사용하여 Core Spotlight에 저장이 가능하다.
아래에서 보듯이, 각각의 CSSearchableItem을 만들고 searchableItems라는 임시 어레이에 저장하자.
2. CSSearchableIndex에서 indexSearchableItems를 호출하자.
이것은 실제로 사용자들이 검색할 수 있고 그 결과를 볼 수 있도록 CoreSpotlight에 저장하는 것이다.
3. 다음과 같이 검색 결과를 Core Spotlight에서 볼 수 있다.
- 사용자에 대한 응답
- spotlight에서 검색 결과를 선택하면, AppDelegate의 continueUserActivity UIAppicationDelegate로 들어오게 된다. 이 곳에 로직을 추가하면 된다.
func application(application: UIApplication, continueUserActivity userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Void) -> Bool {
// Find the ID from the user info
let friendID = userActivity.userInfo?["kCSSearchableItemActivityIdentifier"] as ! String
// Find the root table view controller and make it show the friend with this ID
let navigationController = (window?.rootViewController as! UINavigationController)
navigationController.popToRootViewControllerAnimagted(false)
let friendTableViewController = navigationController.viewController.first as! FriendTableViewController
friendTableViewController.showFriend(friendID)
return true
}
더 많은 정보
소스코드 - https://github.com/shinobicontrols/iOS9-day-by-day/tree/master/01-Search-APIs
참고 - iOS 9 Day by Day - by shinobicontrols
'iOS > iOS 기본기' 카테고리의 다른 글
[Apple Document] iOS - The App Life Cycle (0) | 2019.11.21 |
---|---|
[iOS] 현재 뷰 컨트롤러가 모달(Modal)인지 체크해보쟈 (0) | 2016.11.23 |
[iOS] 앱 버전 체크 (App Version Check) (0) | 2016.11.10 |
[iOS] NSString 문자열 Token으로 자르기 (0) | 2016.02.03 |
[iOS] Supporting IPv6 in iOS 9 ( IPv4 지원 중단 및 IPv6 필수 ) (2) | 2016.01.05 |