Swift 简介程序员
简介面试
- Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序
- 2014 年,在 Apple WWDC 发布
历史编程
- 2010 年 7 月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计
- 用一年时间,完成基本架构
- Swift 大约历经 4 年的开发期,2014 年 6 月发布
- 计划在 2015 年末开源
大事件swift
- 2014 年 6 月苹果在发布 Xcode 6.0 的同时发布了 Swift 1.0
- 2015 年 2 月,苹果同时推出 Xcode 6.2 Beta 5 和 6.3 Beta,在完善 Swift 1.1 的同时,推出了 Swift 1.2 测试版
- 2015 年 6 月,苹果发布了 Xcode 7.0 和 Swift 2.0 测试版,而且宣称在年末开源
- 2015 年 9 月 15 号,正式发布了 Xcode 7.0
从发布至今,苹果的每个举措都彰显其大力推广 Swift 的决心安全
从发布至今,因为语法更迭太快,最苦逼也是收获最大的莫过于用 Swift 开发框架的程序员们闭包
版本架构
- 正式版 2.0 Xcode 7.0.1
- 测试版 2.1 Xcode 7.1 beta 3
Swift 特点框架
- 苹果宣称 Swift 的特色是:快速、现代、安全、互动,并且明显优于 Objective-C 语言
- 可使用现有的 Cocoa 和 Cocoa Touch 框架
- Swift 取消了 Objective-C 的指针及其余不安全访问的使用
- 舍弃 Objective-C 早期应用 Smalltalk 的语法,全面改成句点表示法
- 提供了相似 Java 的名字空间(namespace)、泛型(generic)、运算对象重载(operator overloading)
- Swift 被简单的形容为 “没有 C 的 Objective-C”(Objective-C without the C)
Swift 现状编程语言
- 目前国内有些公司的新项目已经直接采用 Swift 开发
- 目前不少公司都在作 Swift 的人才储备
- 应聘时,会 Swift 开发无疑会增长自身筹码
为何要学习 Swift?ide
- 从4月份开始,苹果提供的资料已经没有 OC 的了,这说明苹果推进 Swift 的决心
- OC 源自于 smalltack-c,迄今已经有 40 多年的历史,虽然 OC 的项目还会在将来持续一段时间,可是更换成 Swift 是将来必然的趋势
- 如今不少公司都注重人才储备,若是会Swift,就业会有很大的优点,简历中若是写上会 Swift,虽然面试中虽然不会怎么被问到,但对于薪资提高有很大帮助,同时能够从另一个侧面证实咱们是有自学能力的人,这是全部企业都须要的
- Swift 里面融合了不少其余面向对象语言的思想,不像OC那么封闭,学会 Swift,再转其余语言会轻松不少
- Swift 毕竟也是出身自苹果,总体程序开发思路和 OC 是同样的,等 Swift 项目讲完后,你们彻底能够用一样的思路写出 OC 的来,并且在翻写的过程当中,可以对不少本来忽略的 OC 基本功有很大的增强和改善
建议
- Objective-C & Swift 对比学习可以对苹果底层的不少实现原理有更加深入的体会
- 项目课程结束后,建议用 Objective-C 重写项目
项目体验
目标
- 熟悉 Swift 的基本开发环境
- 与 OC 开发作一个简单的对比
代码实现
// Created by 王月
// Copyright © wangyue. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
/*
- 没有了.h&.m 文件 都是以.swift后缀
- 没有了main.m文件
- Swift中 类方法使用 类名.方法名
- Swift中 若是使用其类内的属性 不须要使用self.
- 注意: 若是在闭包中 必须使用 (闭包==block) 注意循环引用
- 省略分号
- Swift中 使用枚举 枚举名.枚举值 === .枚举值 拼人品
- 使用print 打印 其性能要比NSLog高
- Selector("buttonClick") == "buttonClick"
*/
override func viewDidLoad() {
super.viewDidLoad()
//建立一个view
let v = UIView(frame: CGRect.init(x: 0, y: 0, width: 200, height: 200))
//设置背景颜色
v.backgroundColor = UIColor.blueColor()
//建立一个button
let button = UIButton(frame: CGRect.init(x: 20, y: 20, width: 50, height: 50))
//设置背景颜色
button.backgroundColor = UIColor.redColor()
//添加点击事件
button.addTarget(self, action: "buttonClick", forControlEvents: UIControlEvents.TouchUpInside)
//添加按钮
v.addSubview(button)
//将v添加到当前view上
view.addSubview(v)
demo1()
}
func buttonClick (){
print("按钮点击了")
}
func demo1(){
let start = CFAbsoluteTimeGetCurrent()
//测试效率
for i in 0...500{
//0.0275490283966064
print(i)
//0.314741969108582
NSLog("%i", i)
}
print(CFAbsoluteTimeGetCurrent() - start)
}
}
小结
- 在 Swift 中没有了 main.m,@UIApplicationMain 是程序入口
- 在 Swift 中只有 .swift 文件,没有 .h/.m 文件的区分
- 在 Swift 中,一个类就是用一对 {} 括起的,没有 @implementation 和 @end
- 每一个语句的末尾没有分号,在其余语言中,分号是用来区分不一样语句的
- 在 Swift 中,通常都是一行一句代码,所以不用使用分号
- 与 OC 的语法快速对比
- 在 OC 中 alloc / init 对应 ()
- 在 OC 中 alloc / initWithXXX 对应 (XXX: )
- 在 OC 中的类函数调用,在 Swift 中,直接使用 .
- 在 Swift 中,绝大多数能够省略 self.,建议通常不写,能够提升对语境的理解(闭包时会体会到)
- 在 OC 中的 枚举类型使用 UIButtonTypeContactAdd,而 Swift 中分开了,操做热键:回车 -> 向右 -> .
- Swift 中,枚举类型的前缀能够省略,如:.ContactAdd,可是:不少时候没有智能提示
- 监听方法,直接使用字符串引发
- 在 Swift 中使用 print() 替代 OC 中的 NSLog