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

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

时间: 2024-10-07 15:50:44

iOS新的旅程之Swift语言的学习的相关文章

初探swift语言的学习笔记四(类对象,函数)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/29606137 转载请注明出处 假设认为文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! swift扩展了非常多功能和属性,有些也比較奇P.仅仅有慢慢学习,通过经验慢慢总结了. 以下将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // C

初探swift语言的学习笔记八(保留了许多OC的实现)

尽管swift作为一门新语言,但还保留了许多OC的机制,使得swift和OC更好的融合在一起.如果没有OC基础的先GOOGLE一下. 如:KVO,DELEGATE,NOTIFICATION. 详见DEMO. import Foundation @objc // 需要打开objc标识,否则@optional编译出错 protocol kvoDemoDelegate { func willDoSomething() @optional func didDoSomething() //可选实现, }

初探swift语言的学习笔记九(OC与Swift混编)

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation class Act : NSObject { func hasAct(tag:Int) -> String { swit

初探swift语言的学习笔记(类对象,函数)

swift扩展了很多功能和属性,有些也比较奇P.只有慢慢学习,通过经验慢慢总结了. 下面将初步学习一下类的写法. 码工,最大爱好就是看码,而不是文字,太枯燥. // // computer.swift // swiftDemo // // Created by apple on 14-6-8. // Copyright (c) 2014年 fengsh. All rights reserved. /* 写本例子的目的在于快速学习swift类的写法,包括知识点: 1.属性设置 2.构造.释构 3.

初探swift语言的学习笔记十一(performSelector)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35842441 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在OC中使用好好的performSelector,但不知为什么在swift有意的被拿掉了.更有甚者连IMP, objc_msgSend也不能用了.虽然想不通为什么,但应该有他的道理.就不纠结了. 大家可能在OC中使用得更多的就是延时处理,及后台处

初探swift语言的学习笔记十(block)

作者:fengsh998 原文地址:http://blog.csdn.net/fengsh998/article/details/35783341 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号fengsh998来支持我,谢谢! 在前面一些学习中,原本把闭包给理解成了block尽管有很多相似之处,但block还是有他自己的独特之外.近日,在写oc/swift混合编码时,有时候需要swift回调oc,oc回调swift . 因此我把swift中的 block 常见的声明和写

初探swift语言的学习笔记四-2(对上一节有些遗留进行处理)

在上一节中有些问题还没有弄清,在这里自己写了一下,做了一下验证,并希望能给读者有所帮助. 看例子: 例子中包括 callback函数的声明与使用 函数作为形参进行传递 函数作为返回值 函数支持泛型,当然class也支持. import Foundation typealias Point = (Int, Int) let origin: Point = (0, 0) //初始化函数用 func willDoit(sender : CallBackManager) { println("willD

初探swift语言的学习笔记六(ARC-自动引用计数,内存管理)

Swift使用自动引用计数(ARC)来管理应用程序的内存使用.这表示内存管理已经是Swift的一部分,在大多数情况下,你并不需要考虑内存的管理.当实例并不再被需要时,ARC会自动释放这些实例所使用的内存. 另外需要注意的: 引用计数仅仅作用于类实例上.结构和枚举是值类型,而非引用类型,所以不能被引用存储和传递. swift的ARC工作过程 每当创建一个类的实例,ARC分配一个内存块来存储这个实例的信息,包含了类型信息和实例的属性值信息. 另外当实例不再被使用时,ARC会释放实例所占用的内存,这些

初探swift语言的学习笔记(可选类型?和隐式可选类型!)

可选类型.隐式可选类型 其次swift还引入一个较有趣的初始值设置语法使用"?"操作符及"!"号操作符 如:"var optionalString: String? = "Hello" optionalString == nil var optionalName: String? = "John Appleseed" var greeting = "Hello!" if let name = op