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

  1. 从4月份开始,苹果提供的资料已经没有 OC 的了,这说明苹果推动 Swift 的决心
  2. OC 源自于 smalltack-c,迄今已经有 40 多年的历史,虽然 OC 的项目还会在未来持续一段时间,但是更换成 Swift 是未来必然的趋势
  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

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

swift入门-day01的更多相关文章

  1. Swift入门学习之一常量,变量和声明

    版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:http://www.cnblogs.com/cavalier-/p/6059421.html Swift入门学习之一常量,变量和 ...

  2. Swift入门篇-闭包和函数

    今天主要是给大家分享的是 swift中闭包的用法,我个人觉得闭包就是函数的简写方法,如果您函数不是很熟悉请查阅 swift入门篇-函数 1:函数类型 函数类型 var 变量 :(类型)->返回值 ...

  3. Swift入门篇-循环语句

    今天早上一起来所有新闻都是报道荷兰5-1战胜西班牙,我一看没有搞错吧,顿时想都如果中国队vs荷兰队也不至于会输的怎么惨吧,难道是荷兰队开挂了,于是我看了一下昨天比赛的视频直播,还真是新闻报道的那样,顿 ...

  4. Swift入门篇-字符串和字符

    今天主要是介绍一下字符串的用法 ,字符串的语法和object-c语法不太一样,但是思想是一样,就是写法不太一样.如果您对.net和java语法比较熟悉的话,那您几乎没有深压力.如果您对swift 基本 ...

  5. Swift入门篇-基本类型(2)

    现在我也在学习Swift语言,常常去逛很多苹果社区和论坛,看到了圈子很多奇怪的现象,发现很多人都赶忙去翻译 Swift书籍 和 发布Swift的视频 .他们这种对新知识的探索精神我本人是很佩服的.但是 ...

  6. Swift入门篇-Hello World

    提示:如果您使用手机和平板电脑看到这篇文章,您请在WIFI的环境下阅读,里面有很多图片, 会浪费很多流量. 博主语文一直都不好(如有什么错别字,请您在下评论)望您谅解,没有上过什么学的 最近这2天主要 ...

  7. Swift入门教程:基本语法大全

    原文:Swift入门教程:基本语法大全       简介:                                                                        ...

  8. Swift入门(五)——数组(Array)

    集合 集合的定义 Swift中提供了两种数据结构用于存放数据的集合,各自是数组(Array)和字典(Dictionary). 他们的主要差别在于数组中的元素由下标确定.而字典中的数据的值由数据的键(K ...

  9. Swift入门(一)——基本的语法

    近期開始学习swift.把学习的过程和总结整理成一个系列.方便日后回想总结. 基本的语法 基础语法 swift中每一行结束后不须要加分号.多个语句在同一行内须要用分好隔开 //表示凝视.或者用/* - ...

随机推荐

  1. VS2010+WINDBG+VMWARE9.0和fatal error RC1106: invalid option: -ologo错误

    提供属性配置文件一份: http://pan.baidu.com/s/1iS1Ix <?xml version="1.0" encoding="utf-8" ...

  2. 2DPlatformer-SLua 编辑器 UI 美化

    在我的开源项目 2DPlatformer-SLua 中,YwLuaMonoBehaviour 是非常重要的一个组件,它负责从 MonoBehaviour 中直接驱动内建的事件到 Lua 中的类和逻辑, ...

  3. linux驱动程序之电源管理之Run-time PM 详解(4)

    Run-time PM. 每个device或者bus都会向run-time PM core注册3个callback   struct dev_pm_ops { ... int (*runtime_su ...

  4. 五指cms安装说明

    1.五指cms目录结构说明 |-- coreframe                   #框架目录 |   |-- app                     #模块(应用程序)目录 |    ...

  5. 《HTML5与CSS3基础教程》笔记

    以下笔记摘要页码基于 人民邮电出版社 2013年1月第1版 英文书名:HMTL5 and CSS3 Visual Quickstart Guide (Seven Edition) 前言 P2: 渐进增 ...

  6. Linux下安装mysql5.6.11(找点有用的信息太费劲)(转)

    Linux下安装mysql5.6.11(找点有用的信息太费劲) (2013-04-25 10:25:09)     1.申请阿里云Linux服务器 昨天在阿里云申请了一个免费试用5天的Linux云服务 ...

  7. Kafka系列(一)安装和配置说明

    单机模式 修改kafak安装文件中 .../kafka_2.9.2-0.8.1.1/config 下面的server.properties 配置文件 1.broker.id=0   [默认不用修改,该 ...

  8. hdoj 2546 饭卡

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  9. java中通过反射获取方法并且调用(getMethod和invoke深入)实践

    为了支持业务的快速变更,往往采用可配置的方式,将业务逻辑的处理部分配置在数据库中或者XMl文件里.配置什么,如何配置才更灵活,That's a problem. 以数据库配置为例(xml相同),在数据 ...

  10. JAVA的反射机制原理

    http://www.cnblogs.com/hongxinlaoking/p/4684652.html 一  反射机制的概念: 指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于 ...