Swift 简介

简介

  • Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序
  • 2014 年,在 Apple WWDC 发布

历史

  • 2010 年 7 月,苹果开发者工具部门总监克里斯·拉特纳开始着手 Swift 编程语言的设计

 

  • 用一年时间,完成基本架构
  • Swift 大约历经 4 年的开发期,2014 年 6 月发布
  • 计划在 2015 年底开源

大事件

  • 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 语言
  • 可以使用现有的 CocoaCocoa 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?

  1. 从4月份开始,苹果提供的资料已经没有 OC 的了,这说明苹果推动 Swift 的决心
  2. OC 源自于 smalltack-c,迄今已经有 40 多年的历史,虽然 OCSwift 是未来必然的趋势
  3. 现在很多公司都注重人才储备,如果会Swift,就业会有很大的优势,简历中如果写上会 Swift,虽然面试中虽然不会怎么被问到,但对于薪资提升有很大帮助,同时可以从另外一个侧面证明我们是有自学能力的人,这是所有企业都需要的
  4. Swift 里面融合了很多其他面向对象语言的思想,不像OC那么封闭,学会 Swift,再转其他语言会轻松很多
  5. Swift 毕竟也是出身自苹果,整体程序开发思路和 OC 是一样的,等 Swift 项目讲完后,大家完全可以用同样的思路写出 OC 的来,而且在翻写的过程中,能够对很多原本忽略的 OC 基本功有很大的加强和改善

建议

  • Objective-C & Swift 对比学习能够对苹果底层的很多实现原理有更加深刻的体会
  • 项目课程结束后,建议用 Objective-C 重写项目

 

 

 

项目体验

目标

  • 熟悉 Swift 的基本开发环境
  • 与 OC 开发做一个简单的对比

代码实现

//  Created by 王月 
//  Copyright ©  wangyue. All rights reserved.
//
 
import UIKit
 
classUIViewController {
/*

没有了.h&.m 文件都是以.swift后缀

没有了main.m文件

中类方法使用类名.方法名

中如果使用其类内的属性不需要使用self.

注意: 如果在闭包中必须使用闭包==block)  注意循环引用

省略分号

中使用枚举枚举名.枚举值枚举值拼人品

使用print 打印其性能要比NSLog高

- Selector("buttonClick") ==  "buttonClick"
    */
    
overridefunc viewDidLoad() {
super.viewDidLoad()
//创建一个view
letUIView(frame: CGRect.init(x: 0, y: 0, width: 200, height: 200))
//设置背景颜色
backgroundColorUIColor.blueColor()
//创建一个button
letUIButton(frame: CGRect.init(x: 20, y: 20, width: 50, height: 50))
//设置背景颜色
backgroundColorUIColor.redColor()
//添加点击事件
addTarget(self, action: "buttonClick", forControlEvents: UIControlEvents.TouchUpInside)
//添加按钮
addSubview(button)
//将v添加到当前view上
view.addSubview(v)
        
        
demo1()
    }
func buttonClick (){
print("按钮点击了")
    }
func demo1(){
letCFAbsoluteTimeGetCurrent()
//测试效率
forin0...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()NSLog