1. 首页
  2. IT资讯

WWDC2016第一天,黑马程序员全国首发iOS 10教程

“u003Cdivu003Eu003Cpu003Eu003Cstrongu003E前言u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E6月14日北京时间凌晨2点,黑马程序员冲在研发课程一线的老师们彻夜未眠,在苹果刚刚公布iMessage的24小时内,我们已将WWDC2016开发者session第一天分享的技术研发为课程。将最新技术分享给大家,是我们一贯的作风。iOS 10新特性教程,黑马程序员全国首发!u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003EiMessageu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003EiMessage作为苹果开发者大会开发者Session环节第一天的主要内容之一,他的意义想必也是不容小觑的,尽管只是几个小小的改动,却是值得开发者去研究的。u003Cstrongu003E黑马程序员的老师在凌晨2点40分奋战至5点,已完成相关iMessage部分的研究与课程研发,暂时公开一个有关u003Cu002Fstrongu003Eu003Cstrongu003EiMessageExtensionu003Cu002Fstrongu003Eu003Cstrongu003E的demo,链接如下:u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E链接:http:u002Fu002Fpan.baidu.comu002Fsu002F1i5tZFNJ 密码:xdjwu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F7f90001766a3bc9f91f” img_width=”305″ img_height=”311″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cbru003Eu003Cbru003Eu003Cbru003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F7fc0001771dd94e223e” img_width=”322″ img_height=”285″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cbru003Eu003Cbru003Eu003Cbru003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F7f90001768cb97b4a95″ img_width=”628″ img_height=”318″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cbru003Eu003Cbru003Eu003Cbru003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002F7fa0001769f5289ebf2″ img_width=”346″ img_height=”306″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E教学视频下载链接在文章最后。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E更多教程,我们的老师加速整理中,敬请期待。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003EWhat’s new in Swiftu003Cu002Fstrongu003Eu003Cstrongu003E3.0u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E我们的老师观看完昨天晚上的xxx先生的讲解,针对语法从 Swift 2 到 3 改变给予以下总结:u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E一、u003Cu002Fstrongu003Eu003Cstrongu003E语法改变细节u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E1. u003Cstrongu003EConsistent Parameter Labeling(一致的参数标记)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Efunc myFunction(a: Int, b: Int, c: Int) {}u003Cu002Fpu003Eu003Cpu003Eu002Fu002F — Swift 2.x 调用u003Cu002Fpu003Eu003Cpu003EmyFunction(10, b: 20, c: 30)u003Cu002Fpu003Eu003Cpu003Eu002Fu002F — Swift 3.x 调用u003Cu002Fpu003Eu003Cpu003EmyFunction(a: 10, b: 20, c: 30)u003Cu002Fpu003Eu003Cpu003E在 Swift 3.x 中,如果你不想要参数的名字,可以添加 _ 到参数名前作为外部参数,类似于:u003Cu002Fpu003Eu003Cpu003Efunc myFunction(a: Int, _ b: Int, c: Int) {}u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 调用u003Cu002Fpu003Eu003Cpu003EmyFunction(a: 10, 20, c: 30)u003Cu002Fpu003Eu003Cpu003E2. u003Cstrongu003EMove ‘Where’ Clause to End of Declaration(将 ‘Where’ 条件移动到声明的最后)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu002Fu002F — Swift 2.xu003Cu002Fpu003Eu003Cpu003Efunc anyCommon<T: Sequence, U: Sequenceu003Cu002Fpu003Eu003Cpu003EwhereT.Element: Equatable,u003Cu002Fpu003Eu003Cpu003ET.Element == U.Elementu003Cu002Fpu003Eu003Cpu003E>(lhs: T, rhs: U) -> Bool { returnfalse }u003Cu002Fpu003Eu003Cpu003Eu002Fu002F — Swift 3.xu003Cu002Fpu003Eu003Cpu003Efunc anyCommon<T: Sequence, U: Sequence>(lhs: T, rhs: U) -> Boolu003Cu002Fpu003Eu003Cpu003Ewhere T.Element: Equatable, T.Element == U.Element { returnfalse }u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E3. Warn on Unused Result by Default(默认不使用返回值的话会有警告)u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7fd0001783de032e403″ img_width=”1954″ img_height=”628″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E在 Swift 3.x 中,如果一个函数有返回值,调用者调用该函数的时候忽略了返回值,那么 Xcode 会有编译器警告,可以使用 ‘_’ 代替u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E二、u003Cu002Fstrongu003Eu003Cstrongu003ESwift 3中u003Cu002Fstrongu003Eu003Cstrongu003E“u003Cu002Fstrongu003Eu003Cstrongu003E移除u003Cu002Fstrongu003Eu003Cstrongu003E”u003Cu002Fstrongu003Eu003Cstrongu003E的新特性u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002F7fa0001779698325db7″ img_width=”1334″ img_height=”750″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E1.u003Cu002Fstrongu003Eu003Cstrongu003ESE-0002: 移除 currying func 声明的语法u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E在Swift 3.0 中,currying func 语法已经被移除,苹果认为函数的 currying 特性的使用场景并不大,但他会增加很多语言的复杂性,所以需要删除它。u003Cu002Fpu003Eu003Cpu003Eu002Fu002F Before:u003Cu002Fpu003Eu003Cpu003Efunc curried(x: Int)(y: String) -> Float {u003Cu002Fpu003Eu003Cpu003EreturnFloat(x) + Float(y)!u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu002Fu002F After:u003Cu002Fpu003Eu003Cpu003Efunc curried(x: Int) -> (String) -> Float {u003Cu002Fpu003Eu003Cpu003Ereturn {(y: String) -> Floatinu003Cu002Fpu003Eu003Cpu003EreturnFloat(x) + Float(y)!u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu002Fu002F oru003Cu002Fpu003Eu003Cpu003Efunc curried(x: Int, y: String) -> Float {u003Cu002Fpu003Eu003Cpu003EreturnFloat(x) + Float(y)!u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E关于 currying 特性,可以查看:u003Cu002Fstrongu003Ehttp:u002Fu002Fswiftcafe.iou002F2015u002F10u002F23u002Fswift-daily-curryingu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E2.u003Cu002Fstrongu003Eu003Cstrongu003ESE-0003: 移除 var 修饰的函数参数u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E在之前,如果想要在函数内部修改参数的值的话,可以使用 var 修饰参数,就像这样:u003Cu002Fpu003Eu003Cpu003Efunc foo(var i: Int) {u003Cu002Fpu003Eu003Cpu003Ei += 1u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003E以上代码能够编译通过,但是调用者不能观察此值的改变,如果外界是想要将传入的值经过函数去改变的话,这个就不起作用了,因为:u003Cu002Fpu003Eu003Cpu003Efunc doSomethingWithVar(var i: Int) {u003Cu002Fpu003Eu003Cpu003Ei = 2 u002Fu002F 这个不会影响外面的i值, 但是这个i的值可以在此处修改u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Evar x = 1u003Cu002Fpu003Eu003Cpu003EdoSomethingWithVar(x)u003Cu002Fpu003Eu003Cpu003Eprint(x)u003Cu002Fpu003Eu003Cpu003E输出结果为1,如果想要在函数内部修改 x 的值,需要更改为:u003Cu002Fpu003Eu003Cpu003Efunc doSomethingWithInout(inout i: Int) {u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 更改 i 的值u003Cu002Fpu003Eu003Cpu003Ei = 2u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 定义变量 iu003Cu002Fpu003Eu003Cpu003Evar x = 1u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 执行函数u003Cu002Fpu003Eu003Cpu003EdoSomethingWithInout(&x)u003Cu002Fpu003Eu003Cpu003Eprint(x)u003Cu002Fpu003Eu003Cpu003E此时输出结果为 2u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E3.u003Cu002Fstrongu003Eu003Cstrongu003ESE-0004: 移除 ++ 和 — 操作符u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7da0005ff3aa583f7c6″ img_width=”400″ img_height=”49″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E由于苹果认为这些操作符增加了学习的负担,并且也认为 x++ 不比 x += 1 快多少,所以就抛弃了 c++ 中循环常用的 ‘++’ 和 ‘–‘ 操作符,例如:u003Cu002Fpu003Eu003Cpu003Evar i: Int = 0u003Cu002Fpu003Eu003Cpu003Eu002Fu002F i++ 不再使用u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 使用:u003Cu002Fpu003Eu003Cpu003Ei += 1u003Cu002Fpu003Eu003Cpu003Eu002Fu002F 或者u003Cu002Fpu003Eu003Cpu003Ei = i + 1u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E4. SE-0007: 移除 C 语言风格的 for 循环u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7fd0001789cc2bb0873″ img_width=”403″ img_height=”72″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E由于 C 语言风格的 ‘for’ 循环表现得不够简洁,而 Swift 又提供了其特有的 ‘for’ 循环格式,所以在 Swift 3.x 中移除了 C 语言风格的 ‘for’ 循环,可以使用类似以下代码的循环:u003Cu002Fpu003Eu003Cpu003Efor i in 0..<3 {u003Cu002Fpu003Eu003Cpu003Eprint(“黑马程序员”)u003Cu002Fpu003Eu003Cpu003E}u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E5. SE-0029: 移除隐式的元组作为被执行函数的参数u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Efunc foo(a : Int, b : Int) {}u003Cu002Fpu003Eu003Cpu003E在 Swift 2.x 中,我们调用多个参数的函数可以这样做:u003Cu002Fpu003Eu003Cpu003Efoo(42, b : 17)u003Cu002Fpu003Eu003Cpu003E还可以这样将参数当作一个元组传入:u003Cu002Fpu003Eu003Cpu003Elet x = (1, b: 2)u003Cu002Fpu003Eu003Cpu003Efoo (x)u003Cu002Fpu003Eu003Cpu003E但是在 Swift 3.x 中,该语法已被移除:u003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7fd000178dd87aa754a” img_width=”603″ img_height=”80″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E三、关于u003Cu002Fstrongu003Eu003Cstrongu003ECore Language 其它一些小的改进u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7da0005ff9f483587fd” img_width=”1334″ img_height=”750″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003E1、 u003Cstrongu003ECore Language 语法清理u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cimg src=”http:u002Fu002Fp1.pstatp.comu002Flargeu002F7fa0001786a2d550c28″ img_width=”1334″ img_height=”750″ alt=”WWDC2016第一天,黑马程序员全国首发iOS 10教程” inline=”0″u003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E1. SE-0028 将u003Cu002Fstrongu003Eu003Cstrongu003E__FILE__u003Cu002Fstrongu003Eu003Cstrongu003E替换成u003Cu002Fstrongu003Eu003Cstrongu003E#fileu003Cu002Fstrongu003Eu003Cstrongu003E。u003Cu002Fstrongu003Eu003Cstrongu003E在 Swift 2.x 中,使用u003Cu002Fstrongu003Eu003Cstrongu003E__FILE__u003Cu002Fstrongu003Eu003Cstrongu003E表示当前代码所在的文件,在 Swift 3.x 中,已更改成u003Cu002Fstrongu003Eu003Cstrongu003E#fileu003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E2. SE-0031u003Cu002Fstrongu003Eu003Cstrongu003Einoutu003Cu002Fstrongu003Eu003Cstrongu003E被移动成为类型的一部分u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E3. SE-0036 需要使用点作为枚举的前缀去使用枚举的成员变量u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E4. SE-0040 在属性参数中,使用 “:” 代替 “=”u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E5. SE-0049 将u003Cu002Fstrongu003Eu003Cstrongu003E@noescapeu003Cu002Fstrongu003Eu003Cstrongu003E和u003Cu002Fstrongu003Eu003Cstrongu003E@autoclosureu003Cu002Fstrongu003Eu003Cstrongu003E前置成为类型的属性u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E6. SE-0060 只能执行默认的参数顺序,不能将打乱参数的顺序u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E7. SE-0066 规范语法:函数类型参数需要圆括号u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E8. SE-0096 转换u003Cu002Fstrongu003Eu003Cstrongu003EdynamicTypeu003Cu002Fstrongu003Eu003Cstrongu003E从一个属性到一个操作符u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E更多详情请查看u003Cu002Fstrongu003Eu003Cstrongu003E:u003Cu002Fstrongu003Ehttps:u002Fu002Fgithub.comu002Fappleu002Fswift-evolutionu002Ftreeu002Fmasteru002Fproposalsu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E“u003Cu002Fstrongu003Eu003Cstrongu003E以卓越与偏执,回敬傲慢与偏见u003Cu002Fstrongu003Eu003Cstrongu003E”u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003E有很多开发者对培训机构有偏见,但是你们又可曾知道,在你们随意地“百度google”时所跳出来让你们满意的答案背后,有一群不被理解的IT教育行业的老师们,在为了更多想要跻身进入IT行业的孩子们,拼命的研发着课程。你们何尝想象过一群偏执狂一样的人,深夜伏案研发课程的场景。扪心自问,你们有多少人在论坛中、贴吧中留着“楼主好人,好人一生平安”的字样,却忘记和诋毁那些藏在资料背后,默默付出的那些老师们。u003Cu002Fpu003Eu003Cpu003E黑马程序员坚持原创,坚持“极客”。极客精神,不止是每一位黑马程序员的信仰,同时也是黑马程序员的传承。u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E有关iMessage及最新Xcode改版的相关功能的课程视频可以加QQ:3128242702获取u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E开发者大会仍在进行中,后续教程持续更新,敬请期待!u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:WWDC2016第一天,黑马程序员全国首发iOS 10教程

主题测试文章,只做测试使用。发布者:醒百年,转转请注明出处:http://www.cxybcw.com/27538.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code