Swift快速入门之开始吧
2016-04-06 10:06
423 查看
关于Swift,苹果这样说 Swift是一个用于开发iOS,OSX,watchOS和tvOS的新语言,它一不小心站在了C和ObjC的肩膀上。它卸掉了必须兼容C的包袱,它采用了安全编程模式并且添加了很多时髦的特性,使开发过程更灵活更搞笑(注:总之就是抄了别人的创意呗)。Swift是崭新的,背后又有着成熟的、充满爱的Cocoa和Cocoa Touch框架支持,所以现在是重新考虑如何进行软件开发的时候了(苹果又要闹革命了)! Swift是我们偷偷搞了好几年才搞出来。我们为了Swift改进了现有的编译器、调试器和框架结构。我们使用ARC(自动引用计数)简化了内存管理;我们把整个框架栈(基础开发库)搞得更时髦更标准。ObjC已经支持了代码块(闭包)、集合迭代以及模块,这使得框架能轻松利用时髦的语言技术。感谢这些基础工作,使我们为未来软件开发推出一个新的巨NewB语言。 你会觉得Swift很象ObjC,它采纳了ObjC的命名参数和动态对象模型。它可以无缝的使用现有的框架并且可以与ObjC混和使用,于是Swift引入了很多新的特性并且把程序与面向对象在语言层面做了统一(这时才知道ObjC还有这么多缺点啊?)。 Swift对新手非常友好,它是第一个象脚本那样可爱又带劲的工业级语言,它支持一个叫Playground的东西,这东西相当牛B,它能让程序员利用Swift在上面做实验,直接看到执行结果而不用先编译程序(怎么样?害怕了吧?)。 Swift从苹果的开发者文化中抄袭了最新最牛B的思想,在编译器性能优化和语言的使用优化上都是一丝不挂。Swift能写一个Hello world,也能写一个操作系统--虽然没人写过。这些听起来是不是让你觉得值得为它投入精力呢? 用Swift写iOS、watchOS、OSX、tvOS程序是一个爽翻天的过程,高潮迭起。我们将继续为它添加新的特性和功能,我们的目标是远大地。好了,说了半天,你们怎么还不动呢?赶紧的吧,我们都等不急了。
开发工具准备苹果电脑一台
安装最新的XCode
如果要做IOS App,还需要:iphone或ipad一台用于测试
苹果开发者帐户(最低一年99美元)
本教程的例子都可在MacOSX 控制台中执行,不需IOS app方式。
先来个小栗子 一般大家都喜欢从输出Hello World开始,用swift写一个Hello world很简单:一句话 printf(“Hello World!”) 可以看到不用头文件,不用定义类,不用main函数,不用写分号。。。
注意须是OSX下的控制台型的项目,创建过程如下:
1 创建工程
![](https://img-blog.csdn.net/20160406101530821)
2 选择工程类型
![](https://img-blog.csdn.net/20160406101540852)
3 选择编程语言
![](https://img-blog.csdn.net/20160406101547133)
4 选择工程保存位置
![](https://img-blog.csdn.net/20160406101553165)
值操作
用let创建常量,用var创建变量,常量的值不用必须在编译阶段就明确,但你只能给常量赋值一次。 定义常量: let a = 100 定义变量: var b = 200
可以看到不需要指定变量或常量的类型。其实不是不需要,而是因为你给它们赋了初值,编译器会跟据所赋的值自动推测出来。如果你没有给它们赋初值或你赋的初值可能对应多种类型,此时就需要明确指明变量或常量的类型了。 let a:Double
let b:Double = 70
…
a = 30
值不能自动转换为其它类型。比如整数变量的值不能赋给浮点型变量。你必须写代码去转换。这样做的目的就是为了让程序员明确知道这些转换。那么如何转换呢?就是创建一个转换后类型的实例,以要转的变量或值做参数。比如: let a=100.9 //a是Double型
var b:Int;
b = Double(a) //创建一个新的Double型实例 Swift 中没有了int,double等基本数据类型,代替的是Int,Double等,因为这些基本数据类型也都变成了对象,就是相当于ObjC里面的 @100,@200.99等。“类型名()” 就是创建实例的方式,再不用ObjC里的 “[[类型名 alloc] init]” 这样又臭又长的东西了。 还记得C语言中的printf()吗?格式化字符串的写法: int a=10;
int b=100;
int c = a*b;
printf(“a+b = %d”,c);
ObjC中是:
int a = 10;
int b = 100;
int c = a*b;
NSLog(@“a+b = %d”,c); 而现在在Swift 中是: let a = 10
let b = 100
let c = a*b
NSLog("a+b = \(c)”)
很明显,现在可以在“\()”的括号里直接写变量。那在里面写表达式行不行? NSLog("a+b = \(a+b)”)
当然可以,你在里面调用函数都行!
创建数组和字典都用中括号。比如: let array = [4,5,6,7,33,22,”hehe”,]
var dictionary = [5:4,4:"dd","rr":67.9]
访问数组中的一项: NSLog(array[1]) //值为5
访问字典中的一项: NSLog(dictionary[“rr”]) //值为67.9 创建空数组或字典: let array = []
let dic = []
这样的数组和字典中能放任何类型的元素。但以下的数组就只能放String型元素了: let array = [String]()
相当于ObjC里面的 NSArray<NSString*>* array=[NSArray array]
但是大家注意这里有个坑:上述方式创建的数组都是不可变数组,指的是其元素数量不可变。所以一旦创建一个空数组或字典,就不能再向其添加新的元素,所以它永远就是空的了。如果要创建可添加元素的数组,需如此如此: var array:NSMutableArray = []
下一篇:Swift快速入门之分支与循环
开发工具准备苹果电脑一台
安装最新的XCode
如果要做IOS App,还需要:iphone或ipad一台用于测试
苹果开发者帐户(最低一年99美元)
本教程的例子都可在MacOSX 控制台中执行,不需IOS app方式。
先来个小栗子 一般大家都喜欢从输出Hello World开始,用swift写一个Hello world很简单:一句话 printf(“Hello World!”) 可以看到不用头文件,不用定义类,不用main函数,不用写分号。。。
注意须是OSX下的控制台型的项目,创建过程如下:
1 创建工程
2 选择工程类型
3 选择编程语言
4 选择工程保存位置
值操作
用let创建常量,用var创建变量,常量的值不用必须在编译阶段就明确,但你只能给常量赋值一次。 定义常量: let a = 100 定义变量: var b = 200
可以看到不需要指定变量或常量的类型。其实不是不需要,而是因为你给它们赋了初值,编译器会跟据所赋的值自动推测出来。如果你没有给它们赋初值或你赋的初值可能对应多种类型,此时就需要明确指明变量或常量的类型了。 let a:Double
let b:Double = 70
…
a = 30
值不能自动转换为其它类型。比如整数变量的值不能赋给浮点型变量。你必须写代码去转换。这样做的目的就是为了让程序员明确知道这些转换。那么如何转换呢?就是创建一个转换后类型的实例,以要转的变量或值做参数。比如: let a=100.9 //a是Double型
var b:Int;
b = Double(a) //创建一个新的Double型实例 Swift 中没有了int,double等基本数据类型,代替的是Int,Double等,因为这些基本数据类型也都变成了对象,就是相当于ObjC里面的 @100,@200.99等。“类型名()” 就是创建实例的方式,再不用ObjC里的 “[[类型名 alloc] init]” 这样又臭又长的东西了。 还记得C语言中的printf()吗?格式化字符串的写法: int a=10;
int b=100;
int c = a*b;
printf(“a+b = %d”,c);
ObjC中是:
int a = 10;
int b = 100;
int c = a*b;
NSLog(@“a+b = %d”,c); 而现在在Swift 中是: let a = 10
let b = 100
let c = a*b
NSLog("a+b = \(c)”)
很明显,现在可以在“\()”的括号里直接写变量。那在里面写表达式行不行? NSLog("a+b = \(a+b)”)
当然可以,你在里面调用函数都行!
创建数组和字典都用中括号。比如: let array = [4,5,6,7,33,22,”hehe”,]
var dictionary = [5:4,4:"dd","rr":67.9]
访问数组中的一项: NSLog(array[1]) //值为5
访问字典中的一项: NSLog(dictionary[“rr”]) //值为67.9 创建空数组或字典: let array = []
let dic = []
这样的数组和字典中能放任何类型的元素。但以下的数组就只能放String型元素了: let array = [String]()
相当于ObjC里面的 NSArray<NSString*>* array=[NSArray array]
但是大家注意这里有个坑:上述方式创建的数组都是不可变数组,指的是其元素数量不可变。所以一旦创建一个空数组或字典,就不能再向其添加新的元素,所以它永远就是空的了。如果要创建可添加元素的数组,需如此如此: var array:NSMutableArray = []
下一篇:Swift快速入门之分支与循环
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- Apple Swift学习教程
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 介绍 Fedora 上的 Swift
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- 浅析iOS应用开发中线程间的通信与线程安全问题
- Swift中实现点击、双击、捏、旋转、拖动、划动、长按手势的类和方法介绍
- Swift编程中的泛型解析
- Swift中定义二维数组的方法及遍历方法示例