iOS的10.0
本文總結了iOS的10,運行于目前推出iOS設備推出的主要開發者相關的功能。
iOS版10引入了新的方法來增加您的應用程序通過幫助系統參與在適當的時候建議你的應用程序給用戶。如果你在你的iOS應用9采納應用的搜索,你給了用戶通過Spotlight和Safari瀏覽器的搜索結果,切換訪問活動和內容的應用程序中深,Siri的建議。在iOS中10及更高版本,可以提供關于用戶在您的應用程序,它有助于系統推廣您的應用額外的地方,如鍵盤QuickType建議,地圖和CarPlay,應用程序切換,Siri的互動,做信息(對于媒體播放應用程序)的鎖屏。為加強與系統集成這些機會是由技術,如集合支持NSUserActivity ,定義為Web標記Schema.org,和API的核心焦點,MapKit,UIKit會和媒體播放器框架中界定的。?
在iOS中10, NSUserActivity對象包括mapItem財產,它可以讓你提供可以在其它環境中使用位置信息。例如,如果你的應用程序顯示酒店評論,你可以使用mapItem屬性來保存用戶正在查看酒店的位置,這樣,當用戶切換到一個旅行計劃應用程序,該酒店的位置,自動可供使用。如果你支持的應用程序搜索,您可以使用新的基于文本的地址組件屬性CSSearchableItemAttributeSet,如thoroughfare和postalCode,充分指定用戶可能想要去的位置。請注意,當您使用mapItem屬性,系統將自動填充contentAttributeSet財產了。
如要與系統中的位置,一定要指定latitude和longitude值,除了值在地址組件屬性CSSearchableItemAttributeSet。它也建議您為提供一個值namedLocation屬性,因此用戶可以查看位置的名稱,以及phoneNumbers屬性,因此,用戶可以使用Siri的啟動與位置的調用。
在iOS中9,添加標記在您的網站上的結構化數據,豐富了用戶在Spotlight中和Safari搜索結果中看到的內容。在iOS中10,可以使用在規定的位置相關的詞匯Schema.org,如的PostalAddress,進一步提升了用戶的體驗。例如,如果用戶瀏覽您的網站上描述的位置,系統可以當用戶切換到地圖顯示相同的位置。需要注意的是Safari瀏覽器支持JSON-LD和微觀數據編碼Schema.org詞匯。
UIKit中介紹了textContentType在UITextInputTraits協議,這樣您可以指定希望用戶在文本區域中輸入的內容的語義。當您提供此信息,系統可以在某些情況下會自動選擇合適的鍵盤和鍵盤的改進和修正與其他應用程序和網站提供的信息,主動整合。例如,如果您使用UITextContentTypeFullStreetAddress告訴您期望用戶在文本字段中輸入完整地址的系統,該系統可以提示用戶最近觀看位置的地址。
如果您的應用程序播放媒體并使用MPPlayableContentManager的API,iOS的10幫助您讓用戶瀏覽專輯封面,并通過鎖屏上你的應用程序播放媒體。
如果您的共享應用程序使用MKDirectionsRequest API,iOS的10可以當用戶可能想搭在應用切換顯示。注冊成為一提供商,指定MKDirectionsModeRideShare的值MKDirectionsApplicationSupportedModes在關鍵Info.plist文件。如果您的應用程序只支持共享搭,系統提示您的應用程序與開頭的文本“送一程來......”; 如果您的應用程序同時支持騎共享和其他路由類型(如汽車或自行車),系統使用文本“獲取方向......”。注意, MKMapItem收到對象可能不包括緯度和經度的信息,并需要地址解析。
與消息應用程序集成在iOS中10,你可以創建與消息應用程序進行交互的應用程序擴展,并讓用戶發送文字,貼紙,媒體文件和交互式信息。您還可以支持交互式信息該更新每個收件人響應消息。您可以創建兩種類型的應用程序擴展:包提供了一組用戶可以添加自己的消息內容的貼紙。
一個的iMessage
應用程序可以讓你提出一個自定義用戶界面消息應用程序中,創建一個標簽瀏覽器,包括文本,貼紙,和一個會話中的媒體文件,并創建,發送和更新互動消息。一個的iMessage應用程序還可以幫助用戶搜索,你在你的應用程序的相關網站主辦,而他們在消息應用程序中的圖像。
您可以無需編寫任何代碼創建一個貼圖包:只需拖動圖像到Xcode
中貼紙資產目錄里面的貼紙包文件夾。
要制定的iMessage應用程序,您使用API的消息框架( Messages.framework )。要了解信息架構,看到消息框架參考。有關創建應用信息的一般信息,請參閱應用程序擴展編程指南。
如果您的應用程序在共享信息提供的圖像和您希望用戶能夠使用聚光燈流行的圖像搜索(即“#images”)來搜索這些圖片沒有留下消息應用程序,首先創建一個應用程序的iMessage。然后按照下列步驟:
添加com.apple.developer.associated-domains關鍵是你的應用程序的權利。 包括Web域承載你想搜索的圖像列表。 對于每個域,指定spotlight-image-search服務。
在加入apple-app-site-association的文件到您的網站。添加字典的spotlight-image-search服務,包括應用ID,這是球隊ID或應用程序ID前綴,其次是包ID。您還可以指定最多500個路徑和模式應包括由聚焦流行的圖像搜索索引(對于網站路徑的一些示例,請參閱通用連接實例創建和上傳協會的文件)。
允許Applebot拍(了解更多信息,請參閱關于Applebot)。
?
?用戶通知
iOS版10引入了用戶通知框架( UserNotifications.framework ),支持本地和遠程通知的傳遞和處理。使用此框架中的類來調度根據特定的條件,如時間或地點本地通知的傳送。應用程序和附加應用可以使用這個框架來接收和潛在的時候都傳遞到用戶的設備修改本地和遠程的通知。
在iOS的10同時推出,用戶通知UI框架( UserNotificationsUI.framework )允許您自定義本地和遠程通知的外觀,當他們出現在用戶的設備上。您可以使用此框架來定義接收通知數據,并提供相應的可視化表示的應用程序擴展。擴展也可以響應與這些通知相關的自定義操作。
語音識別
iOS版10引入了支持連續語音識別,并幫助您構建可識別語音并轉錄成文本應用一個新的API。在使用語音框架(API的Speech.framework ),你可以執行的實時和錄制的音頻講話轉錄。例如,你可以得到一個語音識別器,并使用這樣的代碼開始簡單的語音識別:
讓識別= SFSpeechRecognizer()
?讓請求= SFSpeechURLRecognitionRequest(網址:audioFileURL)
?識別
.recognitionTask(附:請求resultHandler:{(結果,誤差)
打印(結果?
.bestTranscription.formattedString)
})
與訪問其他類型的受保護的數據,如日歷和照片數據,進行語音識別需要用戶的許可(有關訪問受保護的數據類,詳細信息請參閱安全性和保密性增強)。在語音識別的情況下,被要求的權限,因為數據的發送和暫時存儲對蘋果的服務器,以提高語音識別的精度。要請求用戶的權限,則必須添加NSSpeechRecognitionUsageDescription關鍵看你的應用程序的Info.plist文件。
當你采用在應用語音識別,請務必標明的用戶,他們的講話得到了肯定,他們不應該在這個時間敏感的話語。
顏色
?大多數圖形框架在整個系統中,包括核芯顯卡,核心圖片,金屬和AVFoundation,都大大提高了擴展范圍像素格式和寬色域色彩空間支持。通過在整個圖形堆棧擴展這種行為,這是比以往來支持廣色的顯示設備更容易。此外,標準化的UIKit在一個新的擴展sRGB色彩空間中工作,因此很容易沒有顯著的性能損失,在其他更廣泛的色域的色彩搭配sRGB顏色。
下面是采用您開始使用廣色工作的一些最佳實踐。
在IOS 10?中, UIColor類使用擴展sRGB色彩空間及其初始化不再夾住原料成分值之間的0.0和1.0 。如果你的應用程序依賴于UIKit的夾緊元件值(不管你是創建一個顏色或要求其元件值的顏色),你需要改變你的應用程序的行為,當你對iOS的10聯系起來。
?執行自定義在繪圖時UIView在iPad臨(9.7英寸),底層的繪圖環境配置有延長的sRGB色彩空間。
如果您的應用程序呈現的自定義圖像對象,使用新的UIGraphicsImageRenderer
類控制目標位圖是否使用擴展范圍或標準范圍格式創建。如果您在使用較低級別的API?,如核芯顯卡或金屬寬色域的設備,執行自己的圖像處理,你應該使用擴展范圍的色彩空間,并且支持16位浮點組件值的像素格式。當顏色值的夾緊是必要的,你應該這樣做明確。
核芯顯卡,核心圖像和金屬表現為著色色彩空間之間轉換輕松的色彩和圖像提供了新的選擇。適應真實色調顯示真音顯示器采用環境光感應器來自動調節屏幕的顏色和亮度以適應當前環境的照明條件。
為確保您的應用程序與真正的音提供的標準色彩偏移效果很好,添加新UIWhitePointAdaptivityStyle關鍵看你Info.plist文件來描述您的應用程序的主視覺內容。例如:如果你的應用程序是一個照片編輯應用程序,色彩保真度比自動調節到環境白點更為重要。
?在這種情況下,你可以使用UIWhitePointAdaptivityStylePhoto風格,以減少系統的應用真音轉變的力量。
如果你的應用程序是一個閱讀應用,一致性與環境的白點是有幫助的用戶。
在這種情況下,你可以使用UIWhitePointAdaptivityStyleReading風格來增加系統應用真音轉變的力量。
應用搜索增強
iOS的10和核心焦點框架介紹幾種增強應用程序的搜索:
在應用程序內搜索
搜索延續
眾包與微分隱私深層鏈接流行度
驗證結果的可視化
新CSSearchQuery類支持在應用程序中使用現有的核心焦點的API,你指數的內容搜索。使用此API,可以不再需要維護自己的獨立搜索索引并讓您充分利用Spotlight的功能強大的搜索技術和配套規則,允許用戶搜索內容,而無需離開您的應用程序,就像他們在郵件,信息和注意事項做。
在iOS中9,使用搜索的API(如核心焦點, NSUserActivity和Web標記)索引的內容您的應用中讓用戶搜索使用聚光燈和Safari的搜索界面的內容。 在iOS中10,你可以使用新的Core焦點符號,讓用戶繼續在Spotlight中,他們開始搜索,當他們打開您的應用。 要啟用此功能,添加CoreSpotlightContinuation關鍵看你Info.plist文件,給它的價值 a 是 /a ,并更新您的代碼來處理類型的活動延續CSQueryContinuationActionType 。 在對用戶信息的字典NSUserActivity您在收到對象application:continueUserActivity:restorationHandler:方法包括CSSearchQueryString鍵,它的值是表示用戶的查詢字符串。
iOS版10引入了私人差異的方式,以幫助提高在搜索結果中對應用內容的排名。 iOS的差異提交私人散列的一個子集,以蘋果的服務器,用戶使用你的應用程序和NSUserActivity,包括深層鏈接的網址,并有自己的對象eligibleForPublicIndexing屬性設置為 a 是 /a 提交到iOS。散列值的差隱私讓蘋果來算與流行的深層鏈接而沒有帶有鏈接的用戶訪問相關聯的頻率。
當您測試您的網站的標記和使用App Search API的驗證工具深層鏈接,它現在顯示結果的可視化表示,包括支持的標記,如在規定Schema.org。驗證工具可以幫助你看到資料說Applebot網絡爬蟲索引了,如標題,描述,URL和其他支持的元素。您可以訪問驗證工具在這里: https://search.developer.apple.com/appsearch-validation-tool 。要了解更多關于支持深層鏈接和添加標記,看到馬克網頁內容。要了解如何讓你的網站的圖片消息應用程序中搜索,看到有消息應用程序集成。
窗口小部件的改進
iOS版10引入了鎖屏,現在顯示部件的新設計。為了確保您的小部件看起來不錯在任何背景下,您可以指定widgetPrimaryVibrancyEffect或widgetSecondaryVibrancyEffect酌情(使用這些屬性,而不是過時notificationCenterVibrancyEffect屬性)。此外,窗口小部件,現在包括顯示模式(所代表的概念NCWidgetDisplayMode),它可以讓你的描述有多少內容是可用,允許用戶選擇緊湊型或擴展視圖。
蘋果付費增強
在iOS中10,用戶可以通過蘋果的支付從網站上,并通過與Siri的和地圖的互動讓方便和安全支付。對于開發商而言,iOS的10介紹您可以在iOS和watchOS,支持動態支付網絡的能力,以及一個新的沙盒測試環境中運行的代碼使用新的API。
iOS版10引入了新的API,幫助您直接將蘋果支付到您的網站。當你支持蘋果支付你的網站,用戶使用Safari在iOS或OS X瀏覽可以使用他們的卡在他們的iPhone或Apple關注支付蘋果支付。要了解更多信息,請參閱ApplePay JS框架參考。
該PassKit框架( PassKit.framework )介紹,讓你支持蘋果支付地方UIKit中沒有可用的API。 具體來說, PKPaymentAuthorizationController和PKPaymentAuthorizationControllerDelegate使所提供的功能PKPaymentAuthorizationViewController及其委托,但不要求的UIKit。 盡管需要在watchOS并在某些意圖支持蘋果支付新的API,我們建議您采用它在所有的代碼,這樣可以為用戶提供一個單一的代碼基礎廣泛蘋果支付的支持。 (要了解更多關于意圖和Siri的整合,見詩麗吉 )。
該PassKit框架還增加了功能,讓發卡機構從他們的應用程序中出示請柬。 具體來說, PKPaymentButtonTypeInStore按鈕類型可以為卡和顯示蘋果支付按鈕presentPaymentPass:方法可以編程顯示卡時( presentPaymentPass:方法是在定義PKPassLibrary )。
當一個新的支付網絡可用時,您的應用程序可以自動支持新的網絡,而不需要你修改和重新編譯應用程序。
該availableNetworks方法讓你發現可用的用戶在運行時設備上的網絡。此外, supportedNetworks屬性膨脹,因此,它可以采取一些支付提供者的名稱作為參數。您的應用程序,然后自動支持的支付服務提供商支持任何網絡。要了解更多信息,請參閱https://developer.apple.com/apple-pay/。
iOS版10引入了新的測試環境可以直接讓你提供測試卡在設備上。測試環境恢復加密測試付款數據。要使用此環境下,請按照下列步驟操作:
在創建iTunes Connect中測試iCloud帳戶。
登錄到您的設備上該帳戶。
設置所需的區域進行檢測。
使用在列出的測試卡https://developer.apple.com/apple-pay/
。
注意:當您切換的iCloud帳戶,環境自動切換。你還是必須使用實際卡在生產環境中測試付款。
安全性和保密性增強
?iOS版10引入了一些修改和補充,可以幫助您提高代碼的安全性和維護用戶數據的私密性。要了解更多關于這些項目,請參見https://developer.apple.com/security/ 。
新NSAllowsArbitraryLoadsInWebContent
為你的關鍵Info.plist文件為您提供了一個便捷的方式允許任意的Web頁面加載,同時保留ATS保護您的應用程序的其他工作。
該SecKey API包括非對稱密鑰生成改進。使用SecKey API,而不是過時公共數據安全架構(CDSA)的API。
該RC4對稱加密套件現在默認為所有的SSL / TLS連接禁用和安全傳輸API中不再支持SSLv3的。我們建議你停止盡快使用SHA-1和3DES加密算法。
該UIPasteboard類支持剪貼板功能,該功能允許用戶復制和設備之間的粘貼,包括API,你可以用它來限制一個紙板到特定設備并設置過期時間標記在此之后,紙板被清除。此外,一個名為pasteboards不再執著,相反,你應該使用共享的容器和“查找”紙板(即,由確定的紙板UIPasteboardNameFind常數)不可用。
你必須通過在您合適的目的字符串鍵靜態聲明你的應用程序的用途受保護數據類Info.plist
文件。例如,您必須包括NSCalendarsUsageDescription鍵進入用戶的日歷數據。如果不包括相關的目的字符串鍵,您的應用程序時,它試圖訪問數據的退出。
CallKit
該CallKit框架( CallKit.framework )允許的VoIP應用程序與iPhone用戶界面集成和給用戶帶來了很好的經驗。使用這個框架讓用戶查看并回答鎖屏上的傳入的VoIP呼叫和管理聯系人從VoIP的電話應用的收藏夾和最近通話的意見要求。
CallKit還引入了應用程序擴展,使呼叫阻塞和來電識別。您可以創建一個應用程序擴展,可以用一個姓名或電話號碼相關聯告訴系統,當一些應該被阻止。
新聞發布商增強
新聞發布商可以很容易地使用蘋果的新聞格式提供設計精美的新聞,雜志和網絡內容到蘋果的新聞。
任何人都可以報名參加,從各大雜志或新聞機構獨立出版商和博客。要開始使用或了解更多關于最近的更新,請訪問https://newsresources.apple.com。
視頻用戶帳戶
iOS版10引入了視頻用戶的帳戶框架( VideoSubscriberAccount.framework ),以幫助支持流式身份驗證或認證視頻點播(也稱為電視無處不在)與有線電視或衛星電視提供商進行身份驗證的應用程序。使用本框架的API可以幫助您支持單一登錄體驗中,用戶登錄一次解鎖所有他們的訂閱支持流媒體視頻應用程序的訪問。
應用擴展
iOS的10介紹了,您可以創建一個應用程序擴展了一些新的擴展點,如:
電話號碼簿
意圖
意圖UI
消息
通知內容
通知服務
貼紙包
此外,iOS
的10包括第三方鍵盤附加應用以下增強功能:
您可以通過自動檢測文檔的輸入語言documentInputMode
的財產UITextDocumentProxy類,并改變你的鍵盤擴展,與該語言保持一致(如果支持)。當檢測輸入的語言以這種方式,你可以做每個語言的鍵盤是什么內置在消息交換等。
新handleInputModeListFromView:withEvent:方法讓鍵盤延長顯示系統的鍵盤選取器菜單(也就是全球重要的菜單)。鍵盤延長應地位,在相同的位置,每個方向系統全球重要的全球重要。另外,如果你需要提供自定義的按鍵,使鍵盤設置,例如,你應該把這個鍵在同一位置作為系統鍵盤聽寫關鍵。要了解更多關于一般創建應用信息,請參閱應用程序擴展編程指南。
?額外的框架變化
除了上述的大的變化,的iOS 10包括許多其他的改進。
?AVFoundation
?該AVFoundation框架( AVFoundation.framework )包括以下增強功能:
新AVCapturePhotoOutput
類提供了所有的攝影工作流程,統一的管道,使更復雜的控制和整個捕獲過程的監控和包括新功能,如Live照片和RAW格式拍攝。 你應該過渡到AVCapturePhotoOutput而不是AVCaptureStillImageOutput ,這是iOS的10廢棄了。
攝像頭的捕獲管道現在可以捕捉在硬件支持廣色域色彩格式。
默認情況下, AVCaptureSession自動配置為寬色捕獲時適合您的采集工作流程的詳細信息,請參閱iOS設備兼容性參考。
您不再需要執行不同的行為為AVPlayerItem
,取決于內容是否是電影文件或HLS內容。在iOS上10后鏈接的應用程序,您只需設置rate財產和AVFoundation確定當足夠多的內容已經沒有緩沖拖延玩。
該AVPlayerLooper
類可以更容易地循環播放過程中的媒體內容的特定部分。
使用AVAssetDownloadURLSession和AVAssetDownloadURLSession類下載資產,包括HLS流,到設備,然后再播放。 當與FairPlay的流一起使用,可以下載一個加密HLS流和在稍后的時間進行安全播放流。
AVKit該AVKit框架( AVKit.framework )包括updatesNowPlayingInfoCenter屬性,指示當正在播放信息中心應更新。
核心數據
核心數據框架(CoreData.framework )包括以下增強功能:
NSPersistentStoreCoordinator
而今保持SQLite的存儲連接池。 根NSManagedObjectContext對象(那些沒有父母MOCS)透明地支持并發抓取和斷層沒有序列反目成仇。
NSManagedObjectContext對象與WAL SQLite的商店journal_mode支持一個名為查詢世代的新功能。這讓建設部在某個時間點被固定到一個版本的數據庫,并執行所有未來的抓取和斷層針對版本的數據庫。固定MOCS移動到最近的事務與任何保存和查詢幾代人沒有生存過程中的續航時間。
新NSPersistentContainer類提供了一個高層次的集成點維持引用您的您的應用程序NSPersistentStoreCoordinator , NSManagedObjectModel和其他配置資源。
核心數據現在有Xcode的更緊密集成,并自動生成和更新您的NSManagedObject子類。
NSManagedObject包括一些額外的便利方法,使它更容易獲取和創 建子類。 NSManagedObject具有1的子類:與實體1的關系現在支持entity 。
核心數據引入了提供更好的雨燕整合,包括參數化的幾個API調整NSFetchRequest對象。
??
核心映像
核心映像框架(CoreImage.framework )包括多項增強功能。
RAW圖像文件的支持是現在使用的
A8 A9或CPU iOS設備。 核心圖像解碼可以通過幾個第三方攝像頭,以及所支持iOS設備的iSight攝像頭產生的圖像產生RAW圖像(了解更多信息,請參閱AVFoundation )。 為了處理RAW圖像,使用filterWithImageData:options:或filterWithImageURL:options:創建一個CIFilter對象,調整RAW處理選項,在列出的鍵 a target="_self" RAW圖像選項 /a 和讀取從過濾器的處理過的圖象outputImage屬性。
現在,您可以通過插入定制加工成芯圖像過濾圖
theimageWithExtent:processorDescription:argumentDigest:inputFormat:outputFormat:options:roiCallback:processor: method.這種方法補充說,核心圖像處理顯示或輸出的圖像時,過濾器之間調用在回調塊; 塊,您可以訪問像素緩沖區或包含處理后的圖像的當前狀態,金屬質感和應用自己的圖像處理算法。?
當使用定制處理器模塊或寫入濾波器內核,您可以處理比核心映像上下文的工作色彩空間之外的色彩空間的圖像。
使用the imageByColorMatchingWorkingSpaceToColorSpace: and imageByColorMatchingColorSpaceToWorkingSpace: methods轉換進入和離開你的顏色空間的處理之前和之后。
性能呈現顯著改善UIImage
由核心圖片圖像(例如由使用所創建的備份對象initWithCIImage:在初始化) UIImageView對象。此外,核心映像支持UIImage這是貼上了寬色域色彩配置文件對象呈現在一個UIImageView使用廣色域色彩(在能夠iOS設備)對象。
核心繪圖內核代碼現在可以請求特定的輸出像素格式。
核心影像引入了五個新的過濾器:
CINinePartTiled
CINinePartStretched
CIHueSaturationValueGradient
CIEdgePreserveUpsampleFilter
CIClamp
核心運動
核心運動框架( CoreMotion.framework)包括計步器的事件,它使應用程序,當用戶暫停和運行的同時繼續接受快速實時通知。在支持的設備,應用程序可以使用CMPedometer API來注冊在前臺或后臺運行,同時接收實況計步器事件。
基礎
Foundation框架(Foundation.framework)包含許多增強功能,例如:
新NSDateInterval
類定義,計算時間間隔的持續時間和確定的日期是否在其內,以及比較日期的時間間隔和檢查,看看他們是否相交編程接口。
該NSLocale
類定義了許多,你可以用它來獲取有關語言環境,以及如何可以顯示信息的新屬性。
新NSMeasurement
類可以幫助你轉換測量成不同的單元,并計算兩個測量之間的和或差。新NSMeasurementFormatter類有助于顯示的單位數量,當用戶創建的本地化測量交涉。
新NSUnit
類和具體NSDimension子幫你代表度量具體單位。
的
GameKit
該框架的?GameKit( GameKit.framework )包括以下更改和增強功能:
游戲中心應用程序已被刪除。
如果你的游戲實現的GameKit功能外,還必須實現接口的行為需要用戶看到這些功能。例如,如果你的游戲支持排行榜,它可以呈現出GKGameCenterViewController對象或直接從游戲中心讀取數據來實現自定義用戶界面。
一個新的帳戶類型,由實施GKCloudPlayer
類,支持iCloud的,唯一的游戲帳戶。
游戲中心提供了在游戲中心管理數據的持久化存儲新的廣義解。
一個游戲會話( GKGameSession )有球員誰是會議的與會者名單。你的游戲的實現定義何時以及如何從玩家之間的服務器或交換數據的參與者存儲或檢索數據。游戲會話通常可以替代現有的基于回合制的比賽,實時匹配和持久保存的游戲,并且還使參與者之間的互動等機型。
GameplayKit
該GameplayKit框架( GameplayKit.framework )包括以下更改和增強功能:
程序噪聲的產生可以用來生成豐富的游戲世界,創建復雜的自然的紋理和增加真實感相機移動。
空間劃分讓這樣在游戲世界中的數據可以有效地搜索到你的分區游戲世界的數據。
一種新的蒙特卡羅策略( GKMonteCarloStrategist
)幫助那里的可能的移動計算無遺很難模擬你的游戲。
新的決策樹API
可以增強你的游戲建設AI,當你采用決策樹學習的基礎上記錄的玩家行動的數據挖掘一概而論行為。要了解更多信息,請參閱GKDecisionTree和GKDecisionNode。
該GKAgent3D
和GKGraphNode3D課程介紹給現有代理和路徑調查行為3D支持。
新GKMeshGraph
類提供了更高的性能的替代GKObstacleGraph,讓您在數學上少完美路徑的成本生產出更自然的輸出。
新GKScene
和GKSKNodeComponent類,在SpriteKit和Xcode的編輯變化相結合,使整合GameplayKit與SpriteKit比以往更容易。
HealthKit
該HealthKit框架( HealthKit.framework )包括以下更改和增強功能:
新HKCDADocument
類,它代表一個CDA文檔(即,遵循臨床文檔架構標準的文檔)。
新HKWorkoutConfiguration
類,它可以讓你指定activityType和locationType的鍛煉。
新HKWheelchairUseObject
特征的對象類型和相關HKHealthStore方法wheelchairUseWithError:
新的元數據鍵指示天氣類型,如HKWeatherConditionClear
和HKWeatherConditionCloudy,和鍛煉類型,如HKWorkoutActivityTypeFlexibility和HKWorkoutActivityTypeWheelchairRunPace。
HomeKit
在IOS 10,iPad的可經配置以提供遠程訪問配件,運行自動化觸發器,并啟用共享用戶權限。此外,HomeKit框架( HomeKit.framework )增加了對攝像頭和門鈴配件及引入了許多新的API,幫助你:
查看和IP照相機附件配置文件進行交互,顯示實時數據流和快照,并控制相機的設置,揚聲器和麥克風進入新的服務和特性?對于主服務,鏈接服務和有效值,以提供有關附件更多上下文和配置您也可以添加和使用蘋果配件設置工作流程建立配件。
要了解更多信息,請參閱HomeKit框架參考。
金屬
在iOS系統10,金屬包含多項新功能和增強功能,如:
支持曲面細分,從而使3D
應用程序和游戲通過有效地描述復雜的幾何形狀的GPU來渲染更細致的場景。
功能專業化,這使得很容易地創建高度優化功能的集合,以處理在一個場景中的所有物質和光的組合。
資源堆和記憶渲染目標,這甚至授予資源分配的更細粒度的控制,進一步優化基于金屬的應用程序的性能。
ModelIO
該ModelIO框架( ModelIO.framework )包括以下增強功能:
現在支持美元的文件格式。
新MDLMaterialPropertyGraph類可以更容易地支持模型運行程序的變化。
該MDLVoxelArray
類為符號距離字段的支持。
您可以通過實現增加輔助光探頭放置
MDLLightProbeIrradianceDataSource協議。
相片
該照片框架( Photos.framework)使得Live照片編輯功能在使用照片框架API來訪問用戶的照片庫和照片編輯應用程序擴展的照片和攝像頭應用程序使用的應用程序。具體來說,新PHLivePhotoEditingContext類可用來編輯視頻和靜止現場照片的照片內容,與基于核心圖像增強一個易于使用的API。此外,還可以利用新的核心圖像處理器功能的優勢,使用等圖像處理技術來進行編輯。要了解更多信息,請參閱CIImageProcessorInput和CIImageProcessorOutput。
ReplayKit
該ReplayKit框架( ReplayKit.framework )包括以下增強功能:
ReplayKit
支持廣播服務,使得用戶可以廣播通過第三方網站記錄介質。
您可以通過實現此功能的支持RPScreenRecorder
RPBroadcastActivityViewController
和RPBroadcastController類。
參加ReplayKit廣播,第三方廣播服務需要實現對應用程序擴展。廣播UI擴展提供了一個用戶界面,允許用戶登錄到服務,并設立了直播。廣播上傳擴展接收影片剪輯,并將它們發送到服務。
SceneKit
該SceneKit框架( SceneKit.framework )包括多項增強功能。
一種新的基于物理渲染(PBR)系統允許您利用在3D圖形研究的最新創建具有簡單的資產創作更真實的結果。特別:使用新的SCNLightingModelPhysicallyBased
著色模型選擇加入PBR底紋材料。 PBR材料只需要三個基本屬性- diffuse , metalness和roughness -to產生了廣泛的逼真的陰影效果。 (在normal , ambientOcclusion和selfIllumination材料特性也仍然有用PBR材料,但你現在可以忽略大量用于傳統材料的其他屬性。)
PBR
遮光效果最佳環境為基礎的照明,這導致即使漫反射表面拿起場景的顏色在他們周圍。使用lightingEnvironment屬性來全球基于圖像的照明在Xcode場景編輯器分配到整個場景,并把光探頭撿起物體場景內的局部照明的貢獻。
PBR
的場景內容的作者往往更喜歡基于物理方面的工作,所以你現在可以定義使用強度(流明)照明和顏色溫度(開氏度),并導入規范使用真實世界的燈具IESProfileURL財產。
與新的HDR
功能和效果的添加更加逼真SCNCamera類。與HDR渲染,SceneKit捕捉范圍更廣,在一個場景的亮度和對比度,那么您可以定制,能夠適應那個場景的范圍較窄設備的顯示器的色調映射。啟用曝光調整時,例如,在游戲中玩家從一個黑暗的區域移動到陽光下創建自動的效果。或使用暈影,色鑲邊和色彩分級添加一個電影化的外觀到您的游戲。
雖然線性的,更多的色彩精確渲染是PBR
陰影和HDR拍照功能的基礎上,即使是傳統的渲染會產生更好的效果。默認情況下,SceneKit現在執行線性(不伽瑪調整)色彩空間的所有顏色的計算,并使用包括寬彩色顯示器設備的P3色域。此功能是用于鏈接針對iOS的SDK 10所有的應用程序自動啟用,并具有內容設計和資產管理的幾個后果:
SceneKit
顏色相匹配的所有顏色。在以前的版本中,將SceneKit只讀從指定為材質顏色的顏色值NSColor或的UIColor對象,忽略顏色配置文件信息,并假設sRGB色彩空間。
SceneKit
解釋線性RGB空間著色器修改或定制的金屬或OpenGL著色器代碼中指定的顏色分量的值。
SceneKit
讀取并調整在紋理圖像的顏色配置文件信息。紋理設計了線性亮度斜坡,并使用在Xcode資產目錄,以確保您的圖像使用正確的顏色配置文件。
如果需要,您可以禁用線性空間與渲染
SCNDisableLinearSpaceRendering在應用的關鍵Info.plist的文件,并與廣色SCNDisableWideGamut鍵。
幾何現在可以從場景文件加載或使用任意多邊形基元(編程定義SCNGeometryPrimitiveTypePolygon)。SceneKit自動三角測量多邊形網格進行渲染,反而使得更精確的曲面細分利用底層多邊形網格(了解更多信息,請參閱subdivisionLevel屬性)。
SpriteKit
該SpriteKit框架(SpriteKit.framework)包括以下增強功能:
一個新的tilemap的解決方案支持方形,六角形,和等距tilemaps這可以很容易地創建2D,2.5D和橫向卷軸游戲。Xcode的編輯器提供了組織你的磚和創建tilemap的全面支持。欲了解更多信息,請參閱SKTileMapNode,SKTileGroup,SKTileGroupRule和SKTileSet類。
新SKWarpGeometry
類用于拉伸或扭曲如何SKSpriteNode或SKEffectNode對象呈現。經紗是由一組控制點指定。新SKAction類型可用于不同的經線效果之間進行動畫。
自定義著色器可以使用可單獨由使用著色器的每個節點配置屬性。要添加屬性,創建一個SKAttribute
對象,并將其連接到您的著色器。然后,對使用該著色的每個節點,附加一個SKAttributeValue對象。]
該SKView
類定義新的方法,讓您何時以及如何場景呈現了更好的控制。
UIKit
UIKit框架(UIKit.framework)包括許多增強功能,如:
新的基于對象的,完全互動和可中斷動畫支持,可以讓你保持了自己的動畫控制和基于手勢的互動聯系他們。要了解更多信息,請參閱UIViewAnimating
協議參考
,UIViewPropertyAnimator類參考,UITimingCurveProvider協議參考,UICubicTimingParameters類參考,并UISpringTimingParameters類參考。
新
UIPreviewInteraction類和UIPreviewInteractionDelegate協議,這讓你提供與PEEK和流行的經驗自定義用戶界面。
新UIAccessibilityCustomRotor
類及相關類,幫助您提供的輔助技術,如VoiceOver的可以公開給用戶的自定義,上下文特定的功能。例如,您可以創建一個自定義的轉子,可以讓用戶的VoiceOver通過反復返回文本包含的下一個拼寫錯誤的單詞的范圍內找到一個文檔中的拼寫錯誤的單詞。
這讓你決定啟用AssistiveTouch
時,和這給你MFI助聽器的配對狀態。
新UIPasteboardAPI自動兼容的聲明內容類型為普通類實例和新的選項,限制對剪貼板對象的生命周期。
在新選項UIPasteboard新
preferredFontForTextStyle:compatibleWithTraitCollection: UIFont方法,它可以讓你的標簽,文本框和其他文本區域添加對動態類型的支持。
該UIContentSizeCategoryAdjusting協議,它提供了adjustsFontForContentSizeCategory,你可以用它來 確定是否采用元素應該更新其字體,當設備的屬性UIContentSizeCategory變化。
在徽章上一個標簽欄項目的外觀,如背景顏色和文本屬性附加的控制。
在所有滾動視圖的刷新控制支持和滾動視圖的子類,如UICollectionView。
?
新的UIApplication方法的OpenURL:選項:completionHandler: ,這是異步執行,并呼吁主隊列指定 的完成處理程序(此方法取代的OpenURL:)。
新UICloudSharingController類和UICloudSharingControllerDelegate協議,它幫助你啟動CloudKit共享操作并顯示一個視圖控制器,它允許用戶查看和修改的參與者和啟動和
停止共享。
增強UICollectionView和新UICollectionViewDataSourcePrefetching協議,這有助于你把細胞自動預取的優勢,提高了滾動體驗。
WebKit的WebKit的框架(WebKit.framework)引入增強PEEK和流行的支持WKWebView對象。在iOS中10,可以使用web視圖:shouldPreviewElement:方法來確定指定的Web視圖應該顯示預覽。?
已過時的
?APIiOS的10棄用幾個API,其中包括:
?該CloudKit CKDiscoverAllContactsOperation, CKDiscoveredUserInfo , CKDiscoverUserInfosOperation , CKFetchRecordChangesOperation classes.相反,使用CKDiscoverAllUserIdentitiesOperation,CKUserIdentity,CKDiscoverUserIdentitiesOperation和CKFetchRecordZoneChangesOperation類,它們都支持記錄共享。幾個CKSubscription API,如涉及到區域為基礎的訂閱(使用方法和屬性CKRecordZoneSubscription的API,而不是)和基于查詢的用戶(使用CKQuerySubscription的API來代替)。
幾個NSPersistentStoreCoordinator相關內容無處不在的符號。
該ADBannerView和ADInterstitialAd類和相關的符號UIViewController中。
幾個SKUniform有關浮點值的符號。相反,使用方法,如initWithName:vectorFloat2:和uniformWithName:matrixFloat2x2:酌情。
?
與通知若干UIKit類,如和UIUserNotificationSettings。使用在用戶通知框架API(請參閱第用戶通知框架參考)。?
和didReceiveRemoteNotification:withCompletion:WatchKit
方法。使用handleActionWithIdentifier:forNotification:和didReceiveNotification:withCompletion:代替。另外,通知處理方法WKExtensionDelegate,如didReceiveRemoteNotification:和handleActionWithIdentifier:forRemoteNotification:。相反,使用這些方法中,首先創建一個采用委托對象UNUserNotificationCenterDelegate協議并執行相應的方法。然后委托對象分配給委托的單身財產UNUserNotificationCenter對象。
對于特定的API
棄用的完整列表,請參閱iOS的10.0 API的diff。