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
技术分享

        以上这些便是我们今天所学习 的东西了,虽然不是很多,但毕竟是第一次接触吧,还是需要很长时间练习与总结的,每次接触一个新的知识点的时候,虽然课堂上听会了,但是更多是需要大量的 练习与总结,所以望敲代码的小伙伴们一起努力,打造属于我们的明天,好了今天就写到这里了,明天我会继续努力的,加油,加油!!!

  更多精彩:深圳絲足會所  凤凰娱乐平台

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。