Xcode8新特性

注釋問題解決

這個(gè)是因?yàn)樘O果解決xcode ghost铣减。把插件屏蔽了。解決方法
命令運(yùn)行: sudo /usr/libexec/xpccachectl
然后必須重啟電腦后生效

一.代碼及Api注意
使用Xcode8之后,有些代碼可能就編譯不過去了,具體我就說說我碰到的問題。1.UIWebView的代理方法:**注意要?jiǎng)h除NSError前面的 nullable碳竟,否則報(bào)錯(cuò)。

  • (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error{ [self hideHud];}

二狸臣。權(quán)限以及相關(guān)設(shè)置
注意,添加的時(shí)候昌执,末尾不要有空格我們需要打開info.plist文件添加相應(yīng)權(quán)限的說明烛亦,否則程序在iOS10上會(huì)出現(xiàn)崩潰诈泼。具體如下圖:

添加的權(quán)限設(shè)置 ![Uploading 707724-e81adf182229475f_643270.png . . .] .png

麥克風(fēng)權(quán)限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風(fēng)?相機(jī)權(quán)限: Privacy - Camera Usage Description 是否允許此App使用你的相機(jī)煤禽?相冊權(quán)限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫铐达?通訊錄權(quán)限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?藍(lán)牙權(quán)限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍(lán)牙檬果?
語音轉(zhuǎn)文字權(quán)限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識(shí)別瓮孙?日歷權(quán)限:Privacy - Calendars Usage Description 是否允許此App使用日歷?
定位權(quán)限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關(guān)數(shù)據(jù)定位權(quán)限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關(guān)數(shù)據(jù)定位的需要這么寫选脊,防止上架被拒杭抠。
三。更新Xcode8之后恳啥,新建立工程偏灿,都會(huì)打印一堆莫名其妙看不懂的Log.
如這些
subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1,

屏蔽的方法如下:Xcode8里邊 Edit Scheme-> Run -> Arguments, 在Environment Variables里邊添加OS_ACTIVITY_MODE = Disable

log打印雜亂.png

如果寫了之后還是打印log,請重新勾選對勾,就可以解決了

四钝的。Notification(通知)
自從Notification
被引入之后翁垂,蘋果就不斷的更新優(yōu)化,但這些更新優(yōu)化只是小打小鬧硝桩,直至現(xiàn)在iOS 10開始真正的進(jìn)行大改重構(gòu)沿猜,這讓開發(fā)者也體會(huì)到UserNotifications
的易用,功能也變得非常強(qiáng)大碗脊。
iOS 9 以前的通知
1.在調(diào)用方法時(shí)啼肩,有些方法讓人很難區(qū)分,容易寫錯(cuò)方法望薄,這讓開發(fā)者有時(shí)候很苦惱疟游。
2.應(yīng)用在運(yùn)行時(shí)和非運(yùn)行時(shí)捕獲通知的路徑還不一致。
3.應(yīng)用在前臺(tái)時(shí)痕支,是無法直接顯示遠(yuǎn)程通知颁虐,還需要進(jìn)一步處理。
4.已經(jīng)發(fā)出的通知是不能更新的卧须,內(nèi)容發(fā)出時(shí)是不能改變的另绩,并且只有簡單文本展示方式,擴(kuò)展性根本不是很好花嘶。

iOS 10 開始的通知
1.所有相關(guān)通知被統(tǒng)一到了UserNotifications.framework
框架中笋籽。
2.增加了撤銷、更新椭员、中途還可以修改通知的內(nèi)容车海。
3.通知不在是簡單的文本了,可以加入視頻隘击、圖片侍芝,自定義通知的展示等等研铆。
4.iOS 10相對之前的通知來說更加好用易于管理,并且進(jìn)行了大規(guī)模優(yōu)化州叠,對于開發(fā)者來說是一件好事棵红。
5.iOS 10開始對于權(quán)限問題進(jìn)行了優(yōu)化,申請權(quán)限就比較簡單了(本地與遠(yuǎn)程通知集成在一個(gè)方法中)咧栗。

iOS 10 通知學(xué)習(xí)相關(guān)資料:
UserNotifications: 蘋果官方文檔 - 蘋果官方視頻1 - 蘋果官方視頻2 - 蘋果官方視頻3活久見的重構(gòu) - iOS 10 UserNotifications 框架解析WWDC2016 Session筆記 - iOS 10 推送Notification新特性

五逆甜。ATS的問題
iOS 9中默認(rèn)非HTTS的網(wǎng)絡(luò)是被禁止的,當(dāng)然我們也可以把NSAllowsArbitraryLoads
設(shè)置為YES
禁用ATS
致板。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個(gè)方法跳過ATS
交煞,也就是說強(qiáng)制我們用HTTPS
,如果不這樣的話提交App可能會(huì)被拒絕可岂。但是我們可以通過NSExceptionDomains
來針對特定的域名開放HTTP
可以容易通過審核错敢。
參考學(xué)習(xí)文章如下:關(guān)于 iOS 10 中 ATS 的問題
六。iOS 10 UICollectionView 性能優(yōu)化
隨著開發(fā)者對UICollectionView
的信賴缕粹,項(xiàng)目中用的地方也比較多稚茅,但是還是存在一些問題,比如有時(shí)會(huì)卡頓平斩、加載慢等亚享。所以iOS 10 對UICollectionView
進(jìn)一步的優(yōu)化,因?yàn)閿⑹銎饋肀容^復(fù)雜耗費(fèi)時(shí)間绘面,在這里只提供學(xué)習(xí)參考文章如下:WWDC2016 Session筆記 - iOS 10 UICollectionView新特性

七.iOS 10 UIColor 新增方法
以下是官方文檔的說明:
Most graphics frameworks throughout the system, including Core Graphics, Core Image, Metal, and AVFoundation, have substantially improved support for extended-range pixel formats and wide-gamut color spaces. By extending this behavior throughout the entire graphics stack, it is easier than ever to support devices with a wide color display. In addition, UIKit standardizes on working in a new extended sRGB color space, making it easy to mix sRGB colors with colors in other, wider color gamuts without a significant performance penalty.
Here are some best practices to adopt as you start working with Wide Color.
In iOS 10, the UIColor class uses the extended sRGB color space and its initializers no longer clamp raw component values to between 0.0 and 1.0. If your app relies on UIKit to clamp component values (whether you’re creating a color or asking a color for its component values), you need to change your app’s behavior when you link against iOS 10.
When performing custom drawing in a UIView on an iPad Pro (9.7 inch), the underlying drawing environment is configured with an extended sRGB color space.
If your app renders custom image objects, use the new UIGraphicsImageRenderer class to control whether the destination bitmap is created using an extended-range or standard-range format.
If you are performing your own image processing on wide-gamut devices using a lower level API, such as Core Graphics or Metal, you should use an extended range color space and a pixel format that supports 16-bit floating-point component values. When clamping of color values is necessary, you should do so explicitly.
Core Graphics, Core Image, and Metal Performance Shaders provide new options for easily converting colors and images between color spaces.

因?yàn)橹拔覀兌际怯肦GB
來設(shè)置顏色欺税,反正用起來也不是特別多樣化,這次新增的方法應(yīng)該就是一個(gè)彌補(bǔ)吧揭璃。所以在iOS 10 蘋果官方建議我們使用sRGB
晚凿,因?yàn)樗阅芨茫矢S富瘦馍。如果你自己為UIColor
寫了一套分類的話也可嘗試替換為sRGB
歼秽,UIColor
類中新增了兩個(gè)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);

八.iOS 10 UITextContentType
// The textContentType property is to provide the keyboard with extra information about the semantic intent of the text document.@property(nonatomic,copy) UITextContentType textContentType NS_AVAILABLE_IOS(10_0); // default is nil

在iOS 10UITextField
添加了textContentType
枚舉,指示文本輸入?yún)^(qū)域所期望的語義意義情组。
使用此屬性可以給鍵盤和系統(tǒng)信息燥筷,關(guān)于用戶輸入的內(nèi)容的預(yù)期的語義意義。例如院崇,您可以指定一個(gè)文本字段肆氓,用戶填寫收到一封電子郵件確認(rèn)uitextcontenttypeemailaddress
。當(dāng)您提供有關(guān)您期望用戶在文本輸入?yún)^(qū)域中輸入的內(nèi)容的信息時(shí)底瓣,系統(tǒng)可以在某些情況下自動(dòng)選擇適當(dāng)?shù)逆I盤谢揪,并提高鍵盤修正和主動(dòng)與其他文本輸入機(jī)會(huì)的整合。
九.iOS 10 字體隨著手機(jī)系統(tǒng)字體而改變
當(dāng)我們手機(jī)系統(tǒng)字體改變了之后,那我們App
的label
也會(huì)跟著一起變化键耕,這需要我們寫很多代碼來進(jìn)一步處理才能實(shí)現(xiàn)寺滚,但是iOS 10 提供了這樣的屬性adjustsFontForContentSizeCategory
來設(shè)置柑营。因?yàn)闆]有真機(jī)屈雄,具體實(shí)際操作還沒去實(shí)現(xiàn),如果理解錯(cuò)誤幫忙指正官套。
UILabel myLabel = [UILabel new]; / UIFont 的preferredFontForTextStyle: 意思是指定一個(gè)樣式酒奶,并讓字體大小符合用戶設(shè)定的字體大小。 / myLabel.font =[UIFont preferredFontForTextStyle: UIFontTextStyleHeadline]; / Indicates whether the corresponding element should automatically update its font when the device’s UIContentSizeCategory is changed. For this property to take effect, the element’s font must be a font vended using +preferredFontForTextStyle: or +preferredFontForTextStyle:compatibleWithTraitCollection: with a valid UIFontTextStyle. */ //是否更新字體的變化 myLabel.adjustsFontForContentSizeCategory = YES;

十.iOS 10 UIScrollView新增refreshControl

2353624-66e424afef858b14.png

iOS 10 以后只要是繼承UIScrollView
那么就支持刷新功能:
@property (nonatomic, strong, nullable) UIRefreshControl *refreshControl NS_AVAILABLE_IOS(10_0) __TVOS_PROHIBITED;

11.iOS 10 判斷系統(tǒng)版本正確姿勢
判斷系統(tǒng)版本是我們經(jīng)常用到的奶赔,尤其是現(xiàn)在大家都有可能需要適配iOS 10惋嚎,那么問題就出現(xiàn)了,如下圖:

2353624-76e927957e4c8428.png

我們得到了答案是:

//值為 1
[[[[UIDevice currentDevice] systemVersion] substringToIndex:1] integerValue]
//值為10.000000
[[UIDevice currentDevice] systemVersion].floatValue,
//值為10.0
[[UIDevice currentDevice] systemVersion]

所以說判斷系統(tǒng)方法最好還是用后面的兩種方法站刑,哦~我忘記說了[[UIDevice currentDevice] systemVersion].floatValue
這個(gè)方法也是不靠譜的另伍,好像在8.3
版本輸出的值是8.2
,記不清楚了反正是不靠譜的绞旅,所以建議大家用[[UIDevice currentDevice] systemVersion]
這個(gè)方法摆尝!
文章來源
參考文章

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市因悲,隨后出現(xiàn)的幾起案子堕汞,更是在濱河造成了極大的恐慌,老刑警劉巖晃琳,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件讯检,死亡現(xiàn)場離奇詭異,居然都是意外死亡卫旱,警方通過查閱死者的電腦和手機(jī)人灼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來顾翼,“玉大人投放,你說我怎么就攤上這事”┕梗” “怎么了跪呈?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長取逾。 經(jīng)常有香客問我耗绿,道長,這世上最難降的妖魔是什么砾隅? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任误阻,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘究反。我一直安慰自己寻定,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布精耐。 她就那樣靜靜地躺著狼速,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卦停。 梳的紋絲不亂的頭發(fā)上向胡,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音惊完,去河邊找鬼僵芹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛小槐,可吹牛的內(nèi)容都是我干的拇派。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼凿跳,長吁一口氣:“原來是場噩夢啊……” “哼件豌!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起拄显,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對情侶失蹤苟径,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后躬审,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體棘街,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年承边,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遭殉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡博助,死狀恐怖险污,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情富岳,我是刑警寧澤蛔糯,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站窖式,受9級(jí)特大地震影響蚁飒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜萝喘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一淮逻、第九天 我趴在偏房一處隱蔽的房頂上張望琼懊。 院中可真熱鬧,春花似錦爬早、人聲如沸哼丈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽醉旦。三九已至,卻和暖如春脑漫,著一層夾襖步出監(jiān)牢的瞬間髓抑,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工优幸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人褪猛。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓网杆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伊滋。 傳聞我的和親對象是個(gè)殘疾皇子碳却,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容