當(dāng)前位置:首頁(yè) >  科技 >  IT業(yè)界 >  正文

WWDC第一天,黑馬程序員首發(fā)iOS10教程

 2016-06-15 15:45  來(lái)源: 互聯(lián)網(wǎng)   我來(lái)投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)

前言

6月14日北京時(shí)間凌晨2點(diǎn),黑馬程序員沖在研發(fā)課程一線的老師們徹夜未眠,在蘋(píng)果剛剛公布iMessage的24小時(shí)內(nèi),我們已將WWDC2016開(kāi)發(fā)者session第一天分享的技術(shù)研發(fā)為課程。將最新技術(shù)分享給大家,是我們一貫的作風(fēng)。iOS 10新特性教程,黑馬程序員全國(guó)首發(fā)!

iMessage

iMessage作為蘋(píng)果開(kāi)發(fā)者大會(huì)開(kāi)發(fā)者Session環(huán)節(jié)第一天的主要內(nèi)容之一,他的意義想必也是不容小覷的,盡管只是幾個(gè)小小的改動(dòng),卻是值得開(kāi)發(fā)者去研究的。黑馬程序員的老師在凌晨2點(diǎn)40分奮戰(zhàn)至5點(diǎn),已完成相關(guān)iMessage部分的研究與課程研發(fā),暫時(shí)公開(kāi)一個(gè)有關(guān)iMessageExtension的demo,鏈接如下:

鏈接: 密碼:xdjw

更多教程,我們的老師加速整理中,敬請(qǐng)關(guān)注“黑馬程序員”

What's new in Swift 3.0

我們的老師觀看完昨天晚上的xxx先生的講解,針對(duì)語(yǔ)法從 Swift 2 到 3 改變給予以下總結(jié):

一、語(yǔ)法改變細(xì)節(jié)

1. Consistent Parameter Labeling(一致的參數(shù)標(biāo)記)

func myFunction(a: Int, b: Int, c: Int) {}

// -- Swift 2.x 調(diào)用

myFunction(10, b: 20, c: 30)

// -- Swift 3.x 調(diào)用

myFunction(a: 10, b: 20, c: 30)

在 Swift 3.x 中,如果你不想要參數(shù)的名字,可以添加 _ 到參數(shù)名前作為外部參數(shù),類(lèi)似于:

func myFunction(a: Int, _ b: Int, c: Int) {}

// 調(diào)用

myFunction(a: 10, 20, c: 30)

2. Move 'Where' Clause to End of Declaration(將 'Where' 條件移動(dòng)到聲明的最后)

// -- Swift 2.x

func anyCommon

where T.Element: Equatable,

T.Element == U.Element

>(lhs: T, rhs: U) -> Bool { return false }

// -- Swift 3.x

func anyCommon(lhs: T, rhs: U) -> Bool

where T.Element: Equatable, T.Element == U.Element { return false }

3. Warn on Unused Result by Default(默認(rèn)不使用返回值的話會(huì)有警告)

在 Swift 3.x 中,如果一個(gè)函數(shù)有返回值,調(diào)用者調(diào)用該函數(shù)的時(shí)候忽略了返回值,那么 Xcode 會(huì)有編譯器警告,可以使用 '_' 代替

二、Swift 3中“移除”的新特性

1. SE-0002: 移除 currying func 聲明的語(yǔ)法

在Swift 3.0 中,currying func 語(yǔ)法已經(jīng)被移除,蘋(píng)果認(rèn)為函數(shù)的 currying 特性的使用場(chǎng)景并不大,但他會(huì)增加很多語(yǔ)言的復(fù)雜性,所以需要?jiǎng)h除它。

// Before:

func curried(x: Int)(y: String) -> Float {

return Float(x) + Float(y)!

}

// After:

func curried(x: Int) -> (String) -> Float {

return {(y: String) -> Float in

return Float(x) + Float(y)!

}

}

// or

func curried(x: Int, y: String) -> Float {

return Float(x) + Float(y)!

}

關(guān)于 currying 特性,可以查看相關(guān)文檔

2. SE-0003: 移除 var 修飾的函數(shù)參數(shù)

在之前,如果想要在函數(shù)內(nèi)部修改參數(shù)的值的話,可以使用 var 修飾參數(shù),就像這樣:

func foo(var i: Int) {

i += 1

}

以上代碼能夠編譯通過(guò),但是調(diào)用者不能觀察此值的改變,如果外界是想要將傳入的值經(jīng)過(guò)函數(shù)去改變的話,這個(gè)就不起作用了,因?yàn)椋?/p>

func doSomethingWithVar(var i: Int) {

i = 2 // 這個(gè)不會(huì)影響外面的i值, 但是這個(gè)i的值可以在此處修改

}

var x = 1

doSomethingWithVar(x)

print(x)

輸出結(jié)果為1,如果想要在函數(shù)內(nèi)部修改 x 的值,需要更改為:

func doSomethingWithInout(inout i: Int) {

// 更改 i 的值

i = 2

}

// 定義變量 i

var x = 1

// 執(zhí)行函數(shù)

doSomethingWithInout(&x)

print(x)

此時(shí)輸出結(jié)果為 2

3. SE-0004: 移除 ++ 和 -- 操作符

由于蘋(píng)果認(rèn)為這些操作符增加了學(xué)習(xí)的負(fù)擔(dān),并且也認(rèn)為 x++ 不比 x += 1 快多少,所以就拋棄了 c++ 中循環(huán)常用的 '++' 和 '--' 操作符,例如:

var i: Int = 0

// i++ 不再使用

// 使用:

i += 1

// 或者

i = i + 1

4. SE-0007: 移除 C 語(yǔ)言風(fēng)格的 for 循環(huán)

由于 C 語(yǔ)言風(fēng)格的 'for' 循環(huán)表現(xiàn)得不夠簡(jiǎn)潔,而 Swift 又提供了其特有的 'for' 循環(huán)格式,所以在 Swift 3.x 中移除了 C 語(yǔ)言風(fēng)格的 'for' 循環(huán),可以使用類(lèi)似以下代碼的循環(huán):

for i in 0..<3 {

print("黑馬程序員")

}

5. SE-0029: 移除隱式的元組作為被執(zhí)行函數(shù)的參數(shù)

func foo(a : Int, b : Int) {}

在 Swift 2.x 中,我們調(diào)用多個(gè)參數(shù)的函數(shù)可以這樣做:

foo(42, b : 17)

還可以這樣將參數(shù)當(dāng)作一個(gè)元組傳入:

let x = (1, b: 2)

foo (x)

但是在 Swift 3.x 中,該語(yǔ)法已被移除:

三、關(guān)于Core Language 其它一些小的改進(jìn)

1、 Core Language 語(yǔ)法清理

1. SE-0028 將 __FILE__ 替換成 #file。在 Swift 2.x 中,使用__FILE__ 表示當(dāng)前代碼所在的文件,在 Swift 3.x 中,已更改成 #file

2. SE-0031 inout 被移動(dòng)成為類(lèi)型的一部分

3. SE-0036 需要使用點(diǎn)作為枚舉的前綴去使用枚舉的成員變量

4. SE-0040 在屬性參數(shù)中,使用 “:” 代替 “=”

5. SE-0049 將 @noescape 和 @autoclosure 前置成為類(lèi)型的屬性

6. SE-0060 只能執(zhí)行默認(rèn)的參數(shù)順序,不能將打亂參數(shù)的順序

7. SE-0066 規(guī)范語(yǔ)法:函數(shù)類(lèi)型參數(shù)需要圓括號(hào)

8. SE-0096 轉(zhuǎn)換 dynamicType 從一個(gè)屬性到一個(gè)操作符

更多詳情請(qǐng)查看相關(guān)文檔

“以卓越與偏執(zhí),回敬傲慢與偏見(jiàn)”

有很多開(kāi)發(fā)者對(duì)培訓(xùn)機(jī)構(gòu)有偏見(jiàn),但是你們又可曾知道,在你們隨意地“百度google”時(shí)所跳出來(lái)讓你們滿(mǎn)意的答案背后,有一群不被理解的IT教育行業(yè)的老師們,在為了更多想要躋身進(jìn)入IT行業(yè)的孩子們,拼命的研發(fā)著課程。你們何嘗想象過(guò)一群偏執(zhí)狂一樣的人,深夜伏案研發(fā)課程的場(chǎng)景。捫心自問(wèn),你們有多少人在論壇中、貼吧中留著“樓主好人,好人一生平安”的字樣,卻忘記和詆毀那些藏在資料背后,默默付出的那些老師們。

黑馬程序員堅(jiān)持原創(chuàng),堅(jiān)持“極客”。極客精神,不止是每一位黑馬程序員的信仰,同時(shí)也是黑馬程序員的傳承。

申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)標(biāo)簽
ios10
wwdc2016

相關(guān)文章

  • APP推廣實(shí)戰(zhàn)技能——IOS100字符關(guān)鍵詞覆蓋

    關(guān)鍵詞也稱(chēng)關(guān)鍵詞覆蓋,可以簡(jiǎn)單的理解為當(dāng)你在IOS上想到的任何詞類(lèi),這個(gè)App都會(huì)出現(xiàn)在你眼前,那說(shuō)明這個(gè)關(guān)鍵詞你的產(chǎn)品就覆蓋上了(當(dāng)然,有些大咖給出專(zhuān)業(yè)化的術(shù)語(yǔ),即用戶(hù)在AppStore搜索一些詞時(shí),如果一款A(yù)pp出現(xiàn)在搜索結(jié)果中,那么該App就覆蓋了這些詞。)。

    標(biāo)簽:
    app推廣
    ios10
  • iOS10照片恢復(fù):iOS10最近刪除照片恢復(fù)教程

    iOS10刪除照片如何恢復(fù)?手機(jī)像素的越來(lái)越高,人們都喜歡用手機(jī)拍照,里面存放著我們的重要的回憶和紀(jì)念。我們?cè)谑褂檬謾C(jī)的過(guò)程中,經(jīng)常會(huì)遇到,在清理手機(jī)照片的過(guò)程中,會(huì)誤刪手機(jī)里的照片。我們想找回手機(jī)中的被刪除的照片,有什么簡(jiǎn)便的方法嗎?今天小編來(lái)給大家分享如何恢復(fù)手機(jī)中被刪照片。準(zhǔn)備工具:蘋(píng)果手機(jī)和

    標(biāo)簽:
    ios系統(tǒng)
    ios10
  • 升級(jí)iOS 10后:非原裝數(shù)據(jù)線可以更順暢使用

    (原標(biāo)題:升級(jí)iOS10后:非原裝數(shù)據(jù)線可以更順暢使用)我們發(fā)現(xiàn)一些高仿數(shù)據(jù)線在iOS10上正常工作,但在iOS9上不能很好地工作。具體表現(xiàn)為:先插A公再插蘋(píng)果頭可以給手機(jī)正常充電,而如果不插A公,只插蘋(píng)果頭,過(guò)幾秒鐘手機(jī)提示不支持此配件,或者先插蘋(píng)果頭再插A公只有充電符號(hào)卻沒(méi)電流。做測(cè)試我們是認(rèn)真

    標(biāo)簽:
    ios10
  • 蘋(píng)果iOS10兼容性超強(qiáng):高仿數(shù)據(jù)線也能正常用

    做測(cè)試我們是認(rèn)真的,苦于手上的手機(jī)都已升級(jí)iOS10,為了搞清楚問(wèn)題,只好專(zhuān)門(mén)買(mǎi)了一個(gè)iOS9.31版本的iPhone5S手機(jī)來(lái)做實(shí)驗(yàn)。問(wèn)題現(xiàn)象:我們發(fā)現(xiàn)一些高仿數(shù)據(jù)線在iOS10上正常工作,但在iOS9上不能很好地工作。具體表現(xiàn)為:先插A公再插蘋(píng)果頭可以給手機(jī)正常充電,而如果不插A公,只插蘋(píng)果頭,

    標(biāo)簽:
    ios10
  • iPhone7網(wǎng)絡(luò)連接失敗?可升級(jí)iOS10.0.3來(lái)解決

    今日凌晨,蘋(píng)果突然發(fā)布了iOS10.0.3特別版升級(jí),僅針對(duì)iPhone7和iPhone7Plus用戶(hù),主要是為了修復(fù)此前iPhone7系列機(jī)型所出現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)連接問(wèn)題。蘋(píng)果官方表示,如果你經(jīng)常遇到LTE網(wǎng)絡(luò)連接失敗問(wèn)題,可通過(guò)更新系統(tǒng)來(lái)解決。目前,所有iPhone7和iPhone7Plus用戶(hù)可通過(guò)

    標(biāo)簽:
    ios10

熱門(mén)排行

信息推薦