你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> 針對iOS10新增Api的具體研討

針對iOS10新增Api的具體研討

編輯:IOS開發綜合

本文重要是一些對IOS新功效的摸索,之前發明博客裡關於IOS新功效的剖析年夜多是過於歸納綜合,每一個功效幾句話,沒法懂得到詳細的功效。所以本次的摸索是基於Api層面,側重看一些詳細用法所做的筆記,原來想分離畫個類圖來著,後來照樣認為太耗時而廢棄。假如不想把蘋果IOSSDK裡的.h文件都擺出來具體讀,那看這篇筆記應當是個不錯的選擇。 

本文以文檔的目次為基本,提到的功效模塊有: 

Proactive Suggestions 
Integrating with the Messages App 
User Notifications 
Speech Recognition 
Wide Color 
Adapting to the True Tone Display 
App Search Enhancements 
Widget Enhancements 
Security and Privacy Enhancements

還沒有具體摸索的模塊是

SiriKit 
CallKit (任務本能機能和這裡接洽不多,還不care這裡)
Apple Pay Enhancements (任務本能機能和這裡接洽不多,還不care這裡)

SiriKit   
SiriKit的功效異常壯大,支撐音頻、視頻、新聞發送吸收、搜刮照片、預訂行程、治理錘煉等等。在用到此辦事時,siri會發送Intent對象,外面包含用戶的要求和各類數據,可以對這個intent處置選擇恰當的呼應。 這個功效重要是看這兩個頭文件(#import <Intents/Intents.h>、#import <IntentsUI/IntentsUI.h>)所涵蓋到的類太多,後期先略過了,以後等iOS10可以推送更新了再做進一步驟研。 

Proactive Suggestions 體系事後建議 

配景就是iOS9的時刻體系賜與的自動建議會經由過程:Spolight搜刮,Safari搜刮,Handoff,或許siri建議。 在iOS10以後新增了,鍵盤QuickType建議,地圖,車載文娛,運用切換,siri交互,鎖屏播放。 好比你正在一個運用裡看一個酒店,可使用mapitem屬性保留正在檢查的這個酒店的地位,然後你切換觀光或地圖App時這個地位可以主動供給應用。  假如你須要如許應用體系來同享一個地位,那你須要指定這個地位的經緯度,地名,德律風等屬性 來便於siri的直接調起。 

文檔中還列出了幾種場景 

1.在輸出框(UITextFiled)輸出時,可以指定一下這個輸出框的類型,以便體系可以剖析出用戶的語義。 是德律風類型就建議一些德律風,是地址類型就建議一些地址。看下頭文件(#import <UIKit/UITextInputTraits.h>)可指定的類型 就是這個新增的textContentType字段,外面有許多品種型可選。 

UIKIT_EXTERN NSString *const UITextContentTypeName      NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeNamePrefix    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeGivenName     NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeMiddleName    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeFamilyName    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeNameSuffix    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeNickname     NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeJobTitle     NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeOrganizationName   NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeLocation     NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeFullStreetAddress   NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeStreetAddressLine1  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeStreetAddressLine2  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeAddressCity    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeAddressState    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeAddressCityAndState  NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeSublocality    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeCountryName    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypePostalCode    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeTelephoneNumber   NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeEmailAddress    NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeURL      NS_AVAILABLE_IOS(10_0);
UIKIT_EXTERN NSString *const UITextContentTypeCreditCardNumber   NS_AVAILABLE_IOS(10_0);

2.假如是視頻類App可使用MPPlayableContentManager (#import <MediaPlayer/MPPlayableContentManager.h>)看了下,新增了一個屬性nowPlayingIdentifiers,蘋果的意思應當是只需你之前是用這個多媒體類播放音樂的我便可以讓你在鎖屏頁面交互,須要設置裝備擺設在這個數組裡。   

3.假如是出行類app可使用MKDirectionsRequest。 (#import <MapKit/MKDirectionsRequest.h>  )這個類裡簡直沒有新增api,iOS10就新增了一個列舉,並且看上去就是個默許值。假如要應用此功效,須要設置裝備擺設在info.plist文件裡 新增key - value ,MKDirectionsApplicationSupportedModes - MKDirectionsModeRideShare。

User Notifications 用戶告訴 

整體的意思就是支撐了許多用戶界說的告訴,而且可以捕獲到各個告訴狀況的回調。以往告訴的概念是:年夜家想吸收的都提早做好預備,然後一下全量分發,充公到也不論了,也不關懷發送者。如今用戶告訴做成了和收集要求有點像 一個先發request再獲得response的流程,乃至封裝了error,可以在各個狀況的辦法中做一些額定操作,而且也能取到一些字段,如發送者等。 

此功效的頭文件進口在#import <UserNotifications/UserNotifications.h>

1.NSString+UserNotifications.h 

有一個辦法 localizedUserNotificationStringForKey: arguments: (供給該告訴被出現時的當地化字符串),猜想上面的類有許多initWithIdentifier的,他們的indentifier就是這個。

2.UNError.h 

有一個屬性UNErrorDomain 和一個列舉 UNErrorCode,望文生義。 

3.UNNotification.h 

外面有兩個屬性,date日期 和 request,這個request是下面“8”的類型UNNotificationRequest,點出來看了下比擬清楚,有identifier標識,content內容,trigger觸發前提, 和帶上這三個器械的初始化辦法。 個中內容 和 觸發前提這兩個屬性,分離是下面“7” 和 “12”的類型,這個上面再談。 

4.UNNotificationAction.h 

這個類凸起的是一個告訴的舉措,有identifier,title,options(列舉,就是告訴以後的權限,許可?謝絕?前台時許可?)屬性。然後就是帶上這三個器械的初始化辦法。 然後比擬隱晦的就是上面有一個子類UNTextInputNotificationAction ,這個子類有兩個額定屬性, 按鈕title,和文本框placeholder, 為何會是這兩個屬性? 難道是點擊告訴後下拉出的疾速答復,有一個輸出框和一個按鈕。 

5.UNNotificationAttachment.h 

這個外面就是URL(資本url屬性),type(附件類型)。 然後是帶上這兩個屬性的初始化辦法。 上面聲清楚明了幾個字符串常量,臨時還不曉得詳細用在哪裡,typeHint,hiddenKey,clippingRectKey,TimeKey。 

6.UNNotificationCategory.h 

有indentifier屬性,actions(外面是數組),minimalActions(最主要的數組,就是只能給你兩個地位顯示你顯示哪兩個,這麼個意思),intentIdentifiers屬性(應當是和下面的舉措數組聯系關系的吧),options(權限相干,無?許可自界說封閉?許可車載體系交互?)。最初就是把這些都帶上的init辦法。  猜想這個類之所以取名叫category應當是,在某個處所展現告訴的時刻會把一切告訴逐個分類, 然後每一個種別的告訴能夠最多只能讓你展現幾個,假如不做限制應當會展現全體告訴,假如權限設置的是許可自界說封閉那能夠就是支撐相似一鍵消除的操作。 

7.UNNotificationContent.h 

新聞的內容,一看就可以曉得應當是一個相似於Entity的器械,外面裝有年夜量的屬性:attachments(可選的附件聚集),badge(小紅點數目),body,categoryIndentifier,launchImageName(從新聞裡點開的運用法式應當能看到啟動圖對吧),subtitle,threadIdentifier(與request聯系關系),title,userInfo,sound這個是“11”的類型,應當是同時來時的聲響,點開“11”看一下 ,就倆辦法,defaultSound,soundNamed: 自界說聲響,都在~/Library/Sounds 目次下。 恩再回到適才誰人content類外面有個子類UNMutableNotificationContent,屬性和父類雷同,只不外是子類的屬性都可以修正了,父類的那些屬性都是readonly的。 

8.UNNotificationRequest.h 下面第3條說過了 

9.UNNotificationResponse.h  

有action,也有request,那也就有response,這外面有兩個屬性,notification,actionIdentifier  呼應裡就這倆破玩意。 然後有個子類UNTextInputNotificationResponse, 這外面就一個屬性userText ,看定名很好猜,應當就是後面說的誰人有輸出框裡輸出的內容。 

10.UNNotificationSettings.h 

這個類裡就是一些設置了,有一個列舉說的是有無權限,一個列舉說的是不支撐?禁用?啟用?。 然後上面一年夜波屬性,小紅點設置,聲響設置,彈窗設置等等 都是這個列舉類型, 最初還有個alertStyle屬性(列舉,None?Banner?alert?)。 

11.sound後面第7條說過了 

12.UNNotificationTrigger.h 

有一個屬性 repeats(能否反復發告訴)。 上面有四個子類,push告訴觸發, 時光告訴觸發,日歷告訴觸發,地域告訴觸發, 時光的有timeInterval屬性, 日歷的有dateComponents屬性。 然後時光和日歷的子類都有nextTriggerDate 辦法。 

13.UNUserNotificationCenter.h 

這外面器械多到吐了,同窗你記得NSNotificationCenter麼? 須要提一點的就是之前的告訴中間有個辦法[NSNotificationCenter defaultCenter], 這裡是[UNUserNotificationCenter currentNotificationCenter], 提示一下到時刻別說敲不出來。 辦法年夜多是一些remove,add,get等操作, 還有2個署理辦法:告訴將要收回去時挪用,收到告訴的response後挪用。 

14.UNNotificationServiceExtension.h 

外面有兩個辦法,收到告訴的要求後挪用, 體系將要燒毀時挪用。

告訴外面有UI相干的類 #import <UserNotificationsUI/UserNotificationsUI.h> 

這個類外面就一個文件, 並且辦法比擬單一,就是收到告訴挪用,和收到告訴的呼應挪用。 其他辦法也就是mediaPlay 和 mediaPause 。和一些多媒體播放的按鈕frame,color等, 這外面的感化豈非僅僅就是告訴來了後播放的音樂臨時暫停下,響一聲告訴,再播放? 詳細WWDC2016上說的鎖屏頁面的告訴款式處置的api是鄙人面的部件加強章節中。

Integrating with the Messages App 與體系短信 app交互 

抵消息額支撐很年夜,可以模仿發新聞收新聞,發郵件等,供給了UI界面。 也供給了一些額定擴大的api,如臉色包區域。WWDC2016上說的各類新聞內的新操作在頭文件中都能找到Api。 

此功效的頭文件進口在#import <Messages/Messages.h>

 

1.MSMessagesAppViewController.h 

這個類應當就是蘋果本身的新聞界面,你可以繼續他寫你本身自界說的界面。 屬性有:activeConversation 指的是以後的會話對象,是下面“2”這個類型,詳細具體可以看上面的第“2”點、還有個是presentationStyle(外不雅款式,列舉類型,壓縮?擴大?)。 接上去就是辦法了:requestPresentationStyle(要求新聞過渡到指定的款式),dismiss清除辦法。 然後就是一波性命周期辦法了,每類都有will和did,會話信息將要(曾經)活潑時,將要(曾經)消除活潑,將要(曾經)選擇信息,將要(曾經)收到信息,將要(曾經)開端發送,將要(曾經)撤消發送,將要(曾經)開端過渡。 

2.MSConversation.h 

屬性有localParticipantIdentifier(以後會話介入者生成的標識,他說只要刪了App才會變 權且懂得成id是不會變的),remoteParticipantIdentifiers(遠真個標識符數組),selectedMessage(選中的信息),和4個對象辦法 拔出一條信息,拔出一個標簽,拔出一段文本,拔出一個附件。 這四個辦法都有勝利的回調。 

3.MSSession.h 

這個類外面是空的,說明說是用session來處置新聞序列間的關系。能夠就是占個位,今後估量會添加器械。 這個MSSession是前面許多參數的類型,應當就是辨別新聞相似於標識符的感化。  

4.MSMessage.h 

初始化辦法是initWithSession ,沒錯就是下面誰人MSSession。 除初始化辦法剩下的就滿是屬性了:session,senderParticipantIdentifier(發送者的標識符),layout結構這個是“5”這個類型,URL,shouldExpire(選yes會主動消逝,用戶手動選擇為這條新聞續命),AccessibilityLabel(殘疾人形式支撐),error。 

5.MSMessageLayout.h 

這個是籠統類,外面是空的,就是個結構文件,繼續自NSObject。 

6.MSMessageTemplateLayout.h 

繼續下面誰人類,看名字是模板結構前面應當會用的挺多的,外面的屬性有,題目,子題目,尾部題目,尾部子題目,圖片,多媒體URL,圖片題目,圖片子題目。  

7.MSSticker.h 

應當是新聞上的臉色包。 外面就有兩個屬性imageFileURL ,localizedDescription 圖片和部分描寫。然後是帶上這兩個屬性的初始化辦法 initWithContentsOfFileURL: localizedDescription: 。 

8.MSStickerView.h 

這個類就是一個view,外面包著一個sticker,也就是包裹著下面誰人裝潢品的view。 供給了帶上sticker的初始化辦法,一個慣例屬性animationDuration,和三個辦法startAnimating,stopAnimating,isAnimating。 

9.MSStickerBrowserViewDataSource.h 

細思極恐,這個類不就是wwdc2016上說的誰人可以在新聞上面添加自界說臉色的處所麼。 相符datasource的作風,外面就兩個辦法,numberOfStickersInStickerBrowserView: (前往一個總數),stickerBrowserView:stickerAtIndex:(前往這個索引下的內容)。 

10.MSStickerBrowserView.h 

下面誰人是datasource,那這個就是用了下面數據源的view呗。 除初始化辦法,有兩個屬性 stickerSize(列舉,小,中,年夜),dataSource(就是下面的“9”),還有小我reloadData辦法。 

11.MSStickerBrowserViewController.h 

下面是個view, 這個就是承載下面誰人view的viewcontroller。確定得有這個屬性stickerBrowserView 和初始化辦法。 

這個message模塊還有UI相干的api   #import <MessageUI/MessageUI.h> 

就是兩個VC ,MFMailComposeViewController,MFMessageComposeViewController。 這兩個都是繼續自UINavigationController.   認為這兩個就是發郵件的編纂頁面,和發新聞的編纂頁面。  發郵件的頁面裡有 canSendMail (Bool辦法),set主題,set發件人,set收件人,set內容,set附件。 然後有一個署理,和署理辦法,猜也能猜到 就是勝利掉敗回調。mailComposeController:didFinishWithResult: error:  。 那另外一個新聞和這差不多了就不說了。

Speech Recognition 語音辨認轉文字 

這個類外面的Api和辦法挪用都異常清楚,感到應用起來會異常便利。真的為科年夜訊飛捏把汗了,科年夜訊飛的app(灌音寶)我看過,都還沒有說一段語音能直接轉文字的功效,他們是直接把聲響文件上傳,然後24小時刻再發給你轉換後的成果...並且一下去就要免費。蘋果的這個功效曾經做到了體系原生支撐,真的凶猛。 

此功效的頭文件進口在#import <Speech/Speech.h> 

1.SFSpeechRecognitionResult.h

這個類裡有三個屬性:bestTranscription 就是最優的轉化成果咯,是下面的“7”這個類型的。然後再看下這個SFTranscription.h ,果真不出所料 有兩個屬性 一個是字符串類型formattedString 一個是數組類型的segments ,恩 前者就是轉化後的字符串,後者是朋分後的一個個小成果聚集。 然後這個朋分的一個個小成果呢又是下面“6”這個類型。那再看一下“6” 外面的屬性就是 substring, 時光戳,duration,精確性,備選謎底數組,這些很清楚的器械了。 

2.SFSpeechRecognitionRequest.h 

這個類裡器械有點多,屬性taskHint,是下面“4”這個類型,點開一看就是一個列舉,用來辨別你這個語音辨認的要求是哪一類的 查找?確認?聽寫?沒法辨認?。 接上去是兩個BOOL類型的,shouldReportPartialResults(能否語音部分的一塊一塊也要處置?默許選false就是一句話全說完了再上傳吧),detectMultipleUtterances(假設你說了10秒鐘,只要後5秒婚配到了卻果,那你後面刪了照樣保存?默許不刪),然後是剖析到的症結字數組,和標識符甚麼的。 然後這個request有兩個子類,一個是從當地URL讀取 一個聲響文件去辨認, 一個是默許做法用麥克風和AVFoundation庫吸收到聲響去辨認,然後有幾個拼接聲響的API。 

3.SFSpeechRecognitionTask.h 

從名字就可以看出來這是語音辨認最主要的一個類了,外面的屬性有:state這是一個列舉,解釋以後狀況是停止中?已完成?被撤消?等等。 接上去是三個罕見的 isFinishing ,isCancelled ,error 。 接上去是 isPowerAvailable (能否開啟措辭聲響年夜小的監測?),peakPower(最年夜聲響),averagePower(均勻聲響)。 屬性就這些了,接上去就是一個協定和一波署理辦法:方才辨認出話腔調用,猜想話語時挪用,話說完了挪用,撤消時挪用,等等等,你能想到的回調辦法蘋果應當都有的。 

4.下面第2條外面說過了 

5.SFSpeechRecognizer.h 

和體系的那些相機權限,通信錄權限有點像, 就是如今的狀況是甚麼?贊成?謝絕?照樣未選擇過? 然後供給了辦法讓用戶去選擇。 然後有些屬性:NSSet類型的supportedLocales(支撐地域方言的聚集), 

available能否可用,locale以後地域 ,defaultTaskHint默許種別,request(就是下面說的要求),隊列,署理。 然後有個協定和署理辦法:發明用戶授與的權限產生轉變時挪用。 

6和7. 下面第1條裡說過了  

Wide Color 寬域色彩 

文檔的原話說:年夜多半的 core字打頭的圖形框架 還有AVFoundation 都年夜年夜進步了對擴大像素和寬色域顏色空間的支撐。經由過程圖形客棧擴大這類方法比以往支撐廣色域的顯示裝備加倍輕易。如今對UIKit擴大可以在sRGB的顏色空間下任務,機能更好,也能夠在更普遍的色域來搭配sRGB色彩。 然後說了幾個場景說建議你用sRGB吧,好比依附於UIkit的clamp component values的運用法式,或是應用較初級別api履行本身圖象處置的 都建議用sRGB吧。 

然後看了下UIColor類裡 究竟甚麼是sRGB? 發明多了兩個iOS10新增的api。 

+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);  //董鉑然 博客園

- (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0); //董鉑然 博客園

細節都是一樣的就是一個類辦法一個實例辦法, 我懂得下,就是說建議你們之前改用colorwithRGB的處所 如今都換成這個辦法叭。能夠年夜多半公司都抽成了 RGB(a,g,b,a)這類宏吧,那就在宏界說那改一下就行了。 

Adapting to the True Tone Display 真黑色顯示 

真黑色的顯示會依據光感應器來停止主動的調理來到達特定情況下的顯示與機能均衡後果。 假如須要這個功效的話須要再info.plist裡設置裝備擺設 

UIWhitePointAdaptivityStyle 
共有五種選擇: 
1.UIWhitePointAdaptivityStyleStandard 尺度 
2.UIWhitePointAdaptivityStyleReading 浏覽 
3.UIWhitePointAdaptivityStylePhoto 圖片 
4.UIWhitePointAdaptivityStyleVideo 視頻 
5.UIWhitePointAdaptivityStyleGame 游戲 
然後他說的很清晰,假如你是圖片處置類的app,那就直接配stylePhoto吧,假如你是浏覽類的那就直接配styleReading吧。 這五個情勢的顯示後果從上往下遞加,我懂得是說在浏覽時給你最好的後果,但假如在游戲時也給那末好的後果會影響機能,就給你一個絕對次一點的顯示後果讓機能更流利。

App Search Enhancements 運用搜刮加強 

iOS10的搜刮功效做了必定加強:運用法式內搜刮,搜刮傳遞,斟酌私家差別,成果可視化。 應用CSSearchQuery類,挪用Core Spotlight的api,可讓你不用本身保護本身的搜刮索引,關於對搜刮症結字的處置,還有斟酌到分歧種別差別招致搜刮成果的排序都是蘋果幫你處置。 

而且搜刮成果可以持續往下傳遞,假定你用Core Spotlight搜刮火車站,提醒的是地圖類app搜刮火車站的成果,你點出來後,這個地圖類app會吸收到“火車站”這個字段在運用內也完成搜刮。支撐此功效也是須要設置裝備擺設plist文件:key-value  CoreSpotlightContinuation-YES,然後設置CSQueryContinuationActionType(#import<CoreSpotlight/CSSearchableItem.h>)。最初傳遞的搜刮字符串用continueUserActivity:restorationHandler:辦法吸收。 

然後如今看一下#import <CoreSpotlight/CSSearchQuery.h>頭文件外面的構造。 

看上去這個CSSearchQuery像是一個查詢語句操作,有創立,查詢勝利和毛病等。初始化辦法是initWithQueryString: attributes:。 有isCanceled屬性 和 cancel 和 start辦法。 還有foundItemCount屬性,看上去是可以或許獲得搜刮的成果個數。protectionClasses(數組),看上去像是隱私相干受掩護的文件。 還有兩個block,一個是搜刮停止後回調,參數是NSError;一個是查詢到成果時回調,參數是items數組。這個items數組都是CSSearchableItem類型,這外面有個attributeSet屬性,外面可以傳入以下類型 

Widget Enhancements 鎖屏部件加強 

如今鎖屏界面有了新的設計,建議我們放棄之前的notificationCenterVibrancyEffect 改用widgetPrimaryVibrancyEffect或許widgetSecondaryVibrancyEffect,而且窗口的小部件可讓你描寫有若干器械可用,支撐緊湊和擴大兩種形狀。

這些新舊的Effect後果在這個類下,能夠是之前鎖屏玩不出甚麼名堂所以年夜家沒怎樣存眷這裡。 

#import <NotificationCenter/NotificationCenter.h> 外面有三個頭文件

 

1.NCWidgetProviding.h 

先來兩個辦法  

- (void)widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult result))completionHandler;

這個辦法假如完成了,體系將在恰當的時刻呼喚部件更新形狀,不管是在告訴中間照樣後台。 須要啟用後台更新功效,部件會在異步任務主線程更新,挪用參數塊的任務完成後會獲得響應的成果。 

- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize;

這個辦法應當是部件變更時挪用,參數是最年夜有多年夜。
這裡聲清楚明了一個分類UIVibrancyEffect (NCWidgetAdditions),外面就是本章節說的iOS10新增API 

+ (UIVibrancyEffect *)widgetPrimaryVibrancyEffect NS_AVAILABLE_IOS(10_0);

+ (UIVibrancyEffect *)widgetSecondaryVibrancyEffect NS_AVAILABLE_IOS(10_0);

這兩個辦法名字上是老邁和老二,有甚麼差別? 都是用在選擇的文字或圖形上,默許用下面,假如開啟了further diminution(應當是相似於下面緊縮形式)就用上面的。 

上面又聲清楚明了一個分類NSExtensionContext (NCWidgetAdditions),外面也是iOS10的新增API 

外面有兩個屬性 widgetLargestAvailableDisplayMode ,widgetActiveDisplayMode 。 是兩種顯示形式是NCWidgetDisplayMode列舉類型,有壓縮和擴大兩種。 ,估量假設是消息告訴一個是普通年夜小,一個是點開概況的年夜小。 然後就是一個辦法widgetMaximumSizeForDisplayMode ,前往值是CGSize取到播放形式的最年夜尺寸。 

2.NCWidgetController.h

外面除個初始化辦法,還有一個辦法

- (void)setHasContent:(BOOL)flag forWidgetWithBundleIdentifier:(NSString *)bundleID;

第一個參數默許為yes,就是該展現時就展現,這個辦法可以跨小組件間通信,和和providing app交互。 

3.NCWidgetTypes.h 

外面就一個列舉類型NCWidgetDisplayMode ,後面第1點說過了。 

Security and Privacy Enhancements 平安和保密性加強 

平安方面在iOS10中引入了更多修正和彌補,詳細有以下幾點: 
1.在info.plist文件新增了一個key,NSAllowsArbitraryLoadsInWebContent,許可隨意率性web頁面加載,同時蘋果會用ATS掩護你的app。 
2.應用改良後的SecKey API 而不是過時的 CDSA API。 
3.平安傳輸API中不再支撐SSLv3, 建議你們盡快停用SHA1和3DES加密算法。 
4.剪貼板的擴大,由於wwdc2016演示了可以跨裝備復制粘貼啊,那確定要做一些限制可見(#import <UIKit/UIPasteboard.h>) 
5.這點最主要的,建議盡快適配, 一切和用戶權限相干的處所必需在info.plist裡設置裝備擺設外面包含 

NSBluetoothPeripheralUsageDescription

NSCalendarsUsageDescription

NSCameraUsageDescription

NSContactsUsageDescription

NSHealthShareUsageDescription

NSHealthUpdateUsageDescription

NSHomeKitUsageDescription

NSLocationAlwaysUsageDescription

NSLocationWhenInUseUsageDescription

NSMicrophoneUsageDescription

NSMotionUsageDescription

NSPhotoLibraryUsageDescription

NSRemindersUsageDescription

NSSiriUsageDescription

NSSpeechRecognitionUsageDescription

NSVideoSubscriberAccountUsageDescription

NSVoIPUsageDescription

固然如今還沒有iOS10體系的手機,然則我用模仿器試了下,親測假如我想喚起通信錄然則沒有設置裝備擺設NSContactsUsageDescription,剛啟動時不會瓦解,然則在喚起操作產生時會直接瓦解。 在info.plist設置以後便可以正常應用了。

本文是用筆者以為比擬清楚的構造整頓的,願望讀者也能有所贊助。 固然外面也有一些處所是我本身的猜想和懂得,不克不及包管100%准確,有分歧而懂得迎接一路評論辯論。

以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐本站。

【針對iOS10新增Api的具體研討】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved