一、Framework額外的變化
除了上述的大的變化,iOS 9 包括許多其他的改進。
AV Foundation Framework
AV Foundation Framework(AVFoundation.framework)增加了新的AVSpeechSynthesisVoice API,它使你可以通過標識指定的聲音,而不是按語言。您也可以使用name和quality屬性來獲取語音信息。
AVKit Framework
AVKit Framework(AVKit.framework)引入了AVPictureInPictureController和AVPlayerViewController類,這有助于你參加畫中畫。有關畫中畫的更多信息,向前參看 iPad多任務增強。
CloudKit Framework
如果你有CloudKit App,你可以使用CloudKit web服務或CloudKit JS JavaScript庫,為用戶提供一個web界面訪問你的App相同的數據。你必須有已經創建的數據庫使用web界面來實現取回(Fetch),創建(Create)、更新(Update)和刪除記錄(Delete Records),區域(Zones),和訂閱(Subscriptions)。有關更多信息,請參看CloudKit JS參考,CloudKit Web服務,CloudKit介紹。
Foundation Framework
Foundation框架(Foundation.framework)包括以下增強功能:
- API,用于按需加載(On-Demand)的一個NSBundle資源。
- 字符串文件支持上下文相關(Context-Dependent)的可變寬字符串。
- NSProcessInfo API,用于電源和散熱管理。
HealthKit Framework
HealthKit Framework(HealthKit.framework)包括以下增強功能:
- 新的Tracking Areas支持生殖健康和紫外線照射等領域。學習新的常數描述特征(Describe Characteristics)、數量(Quantities)、和其他項目,參看HealthKit常量參考。
- 支持新的批量刪除(Bulk-Deleting)條目與Tracking刪除條目。想了解更多信息,請參看HKHealthStore 類中 HKDeletedObjectHKAnchoredObjectQuery、deleteObjects:withCompletion:,deleteObjectsOfType:predicate:withCompletion:和deleteObjectsOfType:predicate:withCompletion:方法。
Local Authentication Framework
Local Authentication Framework(LocalAuthentication.framework)包括以下增強功能:
- 得到當前的一組登記的指紋,當手指被登記或刪除時,應用程序可以改變行為。
- 支持從代碼取消用戶提示。
- 支持評估鑰匙串訪問控制列表,并在鑰匙串調用中使用的認證上下文(Authentication Context)。
- 支持可重用的Touch ID匹配。一個之前的手機解鎖匹配可以使用evaluateaccesscontrol:和evaluatePolicy:localizedReason:reply:方法。
MapKit Framework
MapKit Framework(MapKit.framework)包括一些補充,可以幫助你提供更豐富的用戶體驗。具體做法是:
- MapKit支持公交查詢并在Map上顯示公交線路。
- 地圖視圖(Map View)支持了3D Flyover模式。
- 注釋(Annotations)可以完全定制。
- 搜索MapKit和CLGeocoder結果可以提供的相應時區。
PassKit Framework
PassKit Framework(PassKit.framework)包括一些關于增強Apple Pay的補充,具體做法是:
- 在iOS 9中,Apple Pay支持查詢存儲借記卡(Store Debit)和信用卡(Credit Cards)。想了解更多信息,參看PKPaymentRequest 類參考中的*" *Payment Networks"。
- 發卡機構和支付網絡可以直接在他們的App中向Apple Pay添加卡。想了解更多信息,參看PKAddPaymentPassViewController類參考。
Safari Services Framework
Safari Services Framework(SafariServices.framework)包括以下增強功能。
FSafariViewController可以用來在你的App中顯示網頁內容。它與Safari瀏覽器共享Cookie和其他網站數據,并擁有許多的Safari瀏覽器的強大功能,如Safari自動填充(AutoFill)和Safari閱讀器(Reader)。不同于Safari瀏覽器是,SFSafariViewController的UI是專為顯示一個頁面,采用了完成按鈕讓用戶可以回到App中去。
如果你的App僅僅是顯示網頁內容,但不自定義內容,可以考慮將你的WKWebView或基于瀏覽器的UIWebView更換為SFSafariViewController。
UIKit Framework
UIKit Framework(UIKit.framework)包括許多增強功能,比如:
- UIStackView類,幫助你在堆棧上管理一組子視圖(Subviews),可以水平或垂直排列。
- 在新的UIView中布局錨點(Layout Anchors)(如leadingAnchor 和 widthAnchor),以及NSLayoutAnchor和NSLayoutDimension,所有這一切都使布局更加的簡單。
- 新的布局指南,幫助你在一個視圖(View)應該畫的內容(Content)中采用可讀的內容邊緣(Content Margins)和定義(Define)。有關更多信息,請參看UILayoutGuide。
- 新UIApplicationDelegate方法可以用來打開一個文檔(Document)并修改它,而不是使用文檔的一個副本。支持open-in-place功能,也在App中的 info.plist 文件中加入了一個鍵為LSSupportsOpeningDocumentsInPlace和值為YES的字段。
- UITextInputAssistantItem類,幫助你在快捷鍵欄(Shortcuts Bar)中布置按鈕組(Bar Button Groups)。
- 增強Touch事件,例如能夠獲得上次刷新顯示后可能發生的中間觸摸(Intermediate Touches)和觸摸預測(Touch Prediction)。
- 增強UIKit動力學,比如支持不規則的碰撞邊界,以及新的 UIFieldBehavior 類,支持不同的可定制字段類型,并且在 UIAttachmentBehavior 中附加附件類型。
- UIUserNotificationAction新特性,它可以讓你在用戶通知中進行文本輸入。
- 新的NSDataAsset類,很容易獲取內容調整使適應你的設備的內存和圖形處理能力。
- 所有標準UIKit Controls翻轉支持從右到左的語言。此外,導航(Navigation),手勢(Gestures),集合視圖(Collection Views)和表格單元布局(Table Cell Layouts)也能相應地翻轉。
二、Watch 連接
Watch Connectivity framework(WatchConnectivity.framework)提供了iPhone和配對Apple Watch之間的雙向通信。該框架用于你的iOS應用和相對應的Watch應用之間的協調活動。該框架支持App在運行、后臺以及其他情況下的即時通訊(immediate messaging)。要了解更多信息,請參看Watch Connectivity Framework參考。
三、鑰匙串(Keychain)
鑰匙串(Keychain)提供了更多的項目保護選項和一個新型Secure Enclave的加密密鑰。具體做法是:
- 新的訪問控制列表約束,允許創建約束只有Touch ID或只有密碼。
- 新的Touch ID無效的鑰匙串項目約束,當指紋被添加或刪除時。
- 支持App-Provided Entropy 密鑰鏈項加密使用App密碼訪問控制列表的選項。
- 支持身份驗證上下文(Context),允許你分開調用身份驗證SecItem Calls。
- 支持密鑰生成和使用中Secure Enclave的kSecAttrTokenIDSecureEnclave屬性。需要注意的是獲得這些密鑰可以通過訪問控制列表支持的所有限制進行控制。
四、棄用的 API
以下API將被棄用:
- 地址簿(Address Book)和地址簿UI框架(Address Book UI frameworks)將使用聯系人(Contacts)和聯系人UI框架(Contacts UI frameworks)來代替。
- Foundation框架中的 NSURLConnection 將使用NSURLSession 代替。
對于完整的特有API棄用列表,參看 iOS 9.0 API Diffs 。