iOS之Swift语言的学习
好久都没有来这个熟悉而又陌生的地方啦, 想想已经有两三个月了吧,不过我相信以后还是会经常来的啦,因为忙碌的学习已经过去啦,剩下的就是要好好的总结好好的复习了,好好的熟悉下我们之前学习的知识点,将他们有条理的串联起来.
在之前的将近三个月里面,不管是忙碌还是怎么样吧, 也许在有些人看来这是非人的生活,但是内个人都有自己的过法吧,面对自己从未接触过的代码和语法,刚开始确实是有那么一点点的害怕,但是慢慢的就没有那种感觉了,渐渐的也发现其实敲代码并没有那么的可怕,也没有那么的难。经过三个月与代码的磨合我发现自己已经不再讨厌,不再抗拒他了,也可以说是对他产生了兴趣吧,我发现自己内心深处开始有种强烈的欲望,也有种不停呼唤的声音那就是监督着我,并时刻提醒着我一定要把iOS学好,不可以令那些在乎我关心我的人失望伤心。下面就来对我们学过的知识做个小小的知识链吧!
在刚开始入班的时间,本以为只有我一个不是本专业的,但是渐渐的发现,其实并不是那样的,有好多都不是本专业的,也有好多和我一样都是零基础的,所以我开始有了自信,不过还好,刚开始我们以最最基础的C语言了步入了程序员阶段,然后伴随着将近一个月的C语言学习,便迎来了OC得学习,刚开始时间,看着黑板上面的英文字母,还真是一头雾水,慢慢的发现那些陌生的英文字母,语法等看着似乎有了感觉,并且也对他们产生了兴趣,开始想要好好的学习了,接下来也就是最最重要的UI阶段了,可以说UI使我们学习时间最长的一个阶段了,各种问题各种出,但是出现问题并不可怕,可怕地是有了问题还不问,不过这个说的不是我,因为我知道有问题不问,那就是对自己的不负责任,尽管有时间问的问题就如一加一一样那么的简单,可是那又怎样,我的目的是,不管简单还是复杂,我都要一一给他弄明白最后我基本上完成了我的目标,知道今天我做出了属于自己的第一款APP(当然目前正在审核阶段,预计本周就会出现在苹果商店中),直到今天,我们接触了全新的语言,那便是Swift语言,看着去年六月份刚出的语言,那面有种好奇的感觉,本以为会很难很难,可是事实并不是如此,也许是自己有了小小的底子吧,总而言之,我们学习的大致过程就是C语言--OC--UI阶段--Swift语言这几大块了,接下来就步入今天的主题吧:
今天是接触Swift语言的第一天,感觉充实而又快乐,下面我为大家分别介绍下Swift语言的几种语法以及注意事项。
一、Swift语言工程的创建
提到这里要和大家强调一下,Swift语言和OC与UI的创建不同,具体如下图:
箭头所指的方向,就是创建Swift工程的地方,紧挨着它的就是UI与OC工程所要用到的
二、Swift语言工程名称
对于Swift语言工程的名称和UI以及OC的都差不多具体如下:
第几第一步后会出现以下界面,图片左上角的箭头指向便是工程名字,右上角箭头则是所属平台,当然如果想要返回的话则只需点击左下角箭头所指方向的Cancel按钮即可,至于右下角的箭头则是下一步操作了,在点击Next(下一步),然后就可以愉快的完成Swift语言的书写了。
三、Swift语言的语法结构
首先需要说明的是Swift语言和C语言及OC和UI的语法结构不同,具体如下:
1、声明/定义变量及常量的方法:
//1.定义变量\常量(const define)
//1.1定义变量, 使用var定义
var xiang = "xiang"
println(xiang)
//1.2定义一个常量 使用let定义
let qm = 213
let qq = "sadjflk"
//1.3变量常量的命名规范:几乎支持所有的Unicode编码字符, 除了一些数字符号, 箭头, 横线, 以及系统的关键字
var ?? = "哈哈"
println(??)
//var var = "456"
//2.基本类型
// 类型 浮点型 (双精度浮点 单精度浮点型) 波尔型 字符串
//C/C++语言: int float double bool char[]
//zai Swift语言中, 基本类型几乎已经被重写了, 首字母大写
//Swift语言中的基本数据类型:Int Float Double Bool String
//2.2
var zs = 123
let whq = "234"
//[注]在Swift语言中, 声明变量/常量如果没有类型,而是直接赋值的话, 编译器会自动推断除常量/变量的类型
//2.3 命名常量和变量 变量/常量 : 类型名称
var lmt : String = "liumingtao"
//let lgz : Int = "213"
// 2.4 练习
var zwd : Int = 233
//在Swift中, 整型是Int, 系统默认64位, 如果系统是32位, 则默认为32
var wzb : Int8 = -128
// Int8的范围: -128~127qqq
//[prc:]变量/常量
var hxw = "sjlfdasdjlk"
var gz : String = "guozhong"
var zhengxing : Int = 4564654
let wujie = 456
let hah = "45646"
var rkf = 3.5
//[注:]在Swift中, 浮点类型默认为double
var rly : Float = 2.5
var cj : Double = 2.6
let dfr = rly + Float(cj)
//[注:]在Swift语言中不支持隐式转化, 可以进行显示转化 转化的方式: 类型(变量/常量)
2.数组及字典的声明和使用
//4.数组 Array
//[注:]在OC中, 数组存放的元素都是基于NSObject类型的对象, 且对象类型可以不相同. 而在Swift中, 数组必须存放相同类型的对象
//定义一个数组
var lc : Array = [String]()
lc
let sxr : Array = [String]()
//var 声明数组为 可变数组
//let声明数组为 不可变数组
//创建可变数组
var gst = ["郭松涛", "张国栋", "邵文乐"]
//编译器会对类型进行数据推断, gst首先是一个Array的数组, 其次里面的数据, 是String的, 所以推断出是字符串数组
var ww = ["王伟", 24]
//增
gst.append("豆培")
gst.insert("徐军辉", atIndex: 1)
gst
//删
gst.removeLast()
gst.removeAtIndex(1)
gst.removeRange(Range(start: 1, end: 2))
gst
//改
gst[0] = "马锐"
gst
//查
//1.根据下表访问
gst[1]
//2.根据下表范围访问
//...表示一个闭区间
gst[Range(start: 0, end: 1)]
gst[0...1]
//..<表示一个开区间
gst[0..<1]
//3.遍历
for name in gst {
name
}
//4.获取数组中的元素以及位置
for (index, name) in enumerate(gst) {
index
name
}
//5.字典
//[注:]在Swift依旧保留了键值对(key-value), 但是需要注意的地方:value也必须是同一种类型
//声明一个变量
var sc = Dictionary<String, Int>()
//增
//Swift中,通过下表访问字典中的元素, 如果字典中没有相对应的key, 那么就是添加数据
sc["age"] = 12
sc["name"] = 2
sc
//删
sc.removeValueForKey("age")
//改
//通过下表访问字典中的元素, 如果字典中有对应的key,那么就修改字典中的值
sc["name"] = 111
sc
//查
//1.下标法
//2.遍历 for - in
for (key, value) in sc {
key
value
}
//Bool类型
//Bool 类型只有true 和 false
var ad : Bool = true
var bs : Bool = false
var b_zs : Bool = true
//String
var b_hxw : String = "HuangXiangWang"
b_hxw.uppercaseString // 大写
b_hxw.lowercaseString // 小写
以上代码便是Swift语言数组和字典的定义,很明显从这些可以看出来,它和C语言及其他语言的定义方法都不同,所以要想熟悉这些需要更多的努力,不管是什么我们都需要不写努力,为此我们还做了大量的练习,具体如下:
//分支结构
//1.if - else
//if 条件 {
// 语句块
//}
var a = 5
if (a == 5) {
a
}
// [注:]条件必须是Bool类型
//2. Switch - case
var b = 2
switch b {
case 0:
b;
case 1:
b + 1;
case 2:
b + 2;
fallthrough //[注:]在Swift中, 通过使用fallthrough可以强制的执行下一个case
case 3:
b + 3;
case 4:
b + 4;
default:
b + 5;
}
// [注:]写Switch一定要加上default
// [注:]在Swift中, switch case加强了, 无需要在每个case后添加break
//[练习] 给一个日期, xx年xx月xx日, 计算这一天是这个年的第几天?
//switch 中的case可以表示为一个范围, 范围可以交叉, 执行满足第一个条件后, 就跳出循环
var c = 25
switch c {
case 0...25 where c != 29:// 使用where进行双重判断
println("在0~30之间")
case 20...80:
println("在20~80之间")
default:
println("没有这个数")
}
//元组也可以作为switch条件
var point = (1, 0)
switch point {
case (0, 0):
println("原点")
case (_, 0):
println("在X轴上")
case (0, _):
println("在Y轴上")
default:
println("其他点")
}
// 3.循环结构
// 1. for
for var i = 0; i < 20; i++ {
i
}
//2.for - in
for j in 0...10 {
j
}
// 3.while
var sum = 0
// while的条件也需要一个返回值为Bool类型的条件, 例如 while 1 {} 为错误
while sum < 7 {
sum += 1
}
do {
sum += 1
} while (sum < 10)
//在数组中存放10个元组对象
var shuzu : Array = [String, Int]()
for var i = 0; i < 10; i++ {
shuzu.append("hah", 45)
}
shuzu
//在字典中使用元组作为value
var sd = Dictionary<String, (String, Int)>()
sd["name"] = ("wang", 15)
//3.在字典中使用数组作为value
var sk = Dictionary<String, [String]>()
sk["wujie"] = ["wode"]
var yuanzu : (String, [Int]) = ("gaga", [55])
同时在课堂的最后我们还进一步学习了Swift语言中的函数语句包括多参和单一参数的,具体代码如下所示:
//函数
//函数定义
/*
func 函数名 (参数列表) -> (返回值类型) {
代码块
}
*/
func sayHello (name: String) -> (String) {
return "hello " + name
}
sayHello("QiaoDaYe")
//多个参数 参数之间用逗号隔开
func sayByeBye (name: String, name1: String) -> (String) {
return name + " ByeBye " + name1
}
sayByeBye("QiaoDaYe", "GuoZhong")
//返回值为多个参数 返回值为元组类型
func sayInfo (name: String, age: String) -> (String, String) {
return (name, age)
}
sayInfo("baby", "27").0
以上这些便是我们今天所学习的东西了,虽然不是很多,但毕竟是第一次接触吧,还是需要很长时间练习与总结的,每次接触一个新的知识点的时候,虽然课堂上听会了,但是更多是需要大量的练习与总结,所以望敲代码的小伙伴们一起努力,打造属于我们的明天,好了今天就写到这里了,明天我会继续努力的,加油,加油!!!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。