今天开始和大家一起来领略一下Swift的魅力,有疏忽的地方,还望各位不吝赐教。
一、Swift 简介
1、简介
- Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序。
- 2014 年,在 Apple WWDC 发布,自发布以来,已经历经4个版本的迭代。其在TIOBE编程语言排行榜上,一度位列12位,超过Ruby并且远远甩开其上一代语言Objective-C。
2、特点
- 性能优越,速度是Objective-C的2.6倍,且开源。
- 从它的语法中能看到Objective-C、JavaScript、C#、Python等语言的影子
- 语法简单、代码简洁、使用方便
- 可与Objective-C混合使用(相互调用)
- 提供了类似 Java 的名字空间(namespace)、泛型(generic)、运算对象重载(operator overloading)
3、Swift和Objective-C的关系
- Swift结合了C和Objective-C的有点,但是又不受C兼容性的限制。
- Swift采用了安全的编程模式,并且添加了很多新属性。
4、重要性
- 苹果目前在大力推广Swift
- 斯坦福大学的公开课目前也是使用Swift在授课,因为以后Swift必将代替OC
二、版本差异性
1、差异
- 截止我当前写作,我已经用到Swift4.2版本,之前着手开发使用的是3.0版本,我之前对比3.0和2.2版本的时候API的使用变化不小,我在此也只做简单的说明,具体的变化可以参考官方文档,当然很多新功能在开发过程中也不一定用得到,大家可以根据实际情况自行定夺。
1、改变了一些标准库的使用,例如屏幕尺寸和颜色相关的简化。
2、去C语言的风格,尤其是在CGRectMake的创建上的改变。
3、可选类型的细节变化,函数的细节变化。
4、API稳定性进一步提升,期待5.0版本能带来更加稳定的API。
2、解疑
1、Swift会取代Objective-C这是一个趋势,但是不代表你可以放弃Object-C的学习,现在市场上依旧是Objective-C开发居多的情况,我们也处在一个过渡的阶段之中,语言只是工具。
2、Swift采用了Objective-C的命名参数和动态对象模型,可以无缝对接到现有的Cocoa框架,并且可以兼容Objective-C代码。
三、Swift初次尝试##
1、Playground介绍
关于Swift的学习我们将使用Playground的环境进行尝试。
- 从Xcode6开始出现(Swift开始出现)
- 对于学习Swift基本语法非常方便
- 所见即所得,能快速查看结果。
- 语法特性发生改变时,可以快速查看。
2、初尝试Swift&一些简单语法解释
// 1、导入框架
// oc中导入系统框架
//#import <UIKit/UIKit.h>
import UIKit
// 2、定义标识符
// oc中定义变量和常量
// 变量
//int a = 11;
//a = 12;
// 常量
//int const b = 11;
//b = 12;
// 对象的创建
//[[UIView alloc] init];
//[UIDevice currentDevice];
//[UIApplication sharedApplication];
// 成员变量和属性的定义
//@interface ViewController ()
//{
// int _a;
//}
///** _name : 成员变量 setter getter */
//@property(nonatomic,copy)NSString *name;
//
//@end
//
//@implementation ViewController
//
//- (void)viewDidLoad {
// [super viewDidLoad];
//
// _a = 10;
//
// self.name = @"hahaha";
// self -> _a = 12;
//}
//
//
//@end
// swift中定义标识符:定义标识符必须告诉编译器是一个常量还是一个变量
// 声明常量用let来修饰,声明变量用var来修饰。
// 格式 let/var 标识符名称 : 标识符的数据类型 = 值
let a : Int = 10
var str = "Hello, playground"
str = "hello world"
// 对象的创建
UIDevice.current
UIApplication.shared
let rect = CGRect.init(x: 0, y: 0, width: 100, height: 100)
let view = UIView.init(frame: rect)
view.backgroundColor = UIColor.red
// 3、语句结束
// 如果一行只有一条语句可以不加分号;但是oc必须添加
// 如果一行中有多条语句必须添加分号;两者相同
// 4、打印内容
// oc打印
//NSLog(@"%@", str);
print(str)