干开发这行也有三年多了,做过iOS,也做过JAVA,中间也始终没有自己的博客或者文章什么的,在此分享一下个人接触的Swift入门体验,当然分享的过程也可以查漏补缺一下,此处讲的都是最基础的东西。
最初接触Swift认为Swift是一门很奇怪的语言,当看到满屏幕的问号叹号的时候,甚至想过放弃接触Swift,但在好奇心的驱使下,静下心来好好的看了一下。
仔细分析一下,Swift的语法其实跟JAVA颇有相似之处但也略有不同。
从最基本的定义变量开始,在Swift中,声明的变量只有两种,一种是var可变的,一种是let不可变的。
let 有点类似于 JAVA中的 final,一经赋值,不可改变
简单的举例说明一下
let num = 6
num += 1
这时,第二行代码就会报错,大概的意思是,let为不可变类型,如果修改请将其用 var 来修饰
声明变量到此结束,下面说下Swift的自动推倒机制
大概的意思就是,在定义一个变量的时候,可以不用指定变量的类型,Swift会自动判断它的实际类型,大概的意思如下图。
变量的定义到此结束。
下面简单的方法的定义,在定义方法之前,先简单介绍一下几种修饰符
1,private
private访问级别所修饰的属性或者方法只能在当前类里访问。
2,fileprivate
fileprivate访问级别所修饰的属性或者方法在当前的Swift源文件里可以访问。(比如上门样例把private改成fileprivate就不会报错了)
3,internal(默认访问级别,internal修饰符可写可不写)
internal访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。如果是App代码,也是在整个App代码,也是在整个App内部可以访问。
4,public
可以被任何人访问。但其他module中不可以被override和继承,而在module内可以被override和继承。
5,open
可以被任何人使用,包括override和继承。
5种修饰符访问权限排序
从高到低排序如下:open >public> interal > fileprivate >private
接下来简单的定义一个方法
下划线的意思表示占位
在此不得不说一句,此方法判断的类型是一个可选值类型,当然此处的问号改成叹号也可以,但是如果肯定有值,那么没有判断的必要了,在不确定是否有值得情况下,采用if let判断。
此处还有另外一种方法就是用guard let也是判断一个可选值方法如下
下面看一下判断字符串的方法
相信看到这,很多接触过JAVA和OC的同学们要骂街了,因为,JAVA和OC中,==一般是用来判断两个变量的地址是否相同,而在JAVA和OC中是用equal来判断,但在此处,Swift就是这么骄傲,就这写。
接下来简单说一下for循环
第一种就是OC中的forin JAVA中应该叫做foreach 第二种就是普通的fori
接下来简单的说说定义数组和字典
对可变数组的操作
此处追加新元素的方法由OC的 addObject 改为了 append
接下来,通过一个简单demo来玩一下UITableView
通过这几行的代码,一个简单的UITableView就完成了,需要提醒的是,在设置完数据源后,并且遵守了协议,如果不完成两个必须实现的方法(numberOfRowsInSection/cellForRowAt indexPath)则会报错,没关系,不用紧张,实现这两个方法,就不会报错了
接下来看看UITableViewController
但是这样还是不够的,此处运行会报一个不能初始化一个无参的控制器,需要再appDelegate给它的初始化方法添加一个参数
接下来再简单介绍一下加载xib
此处可以看出,大体的代码不用改,用UINib的方式进行注册就好,标识,一定要对应
最后说一下UICollectionView
UICollectionViewController的简单用法
一定不能忘记指定流布局,其实Swift相比于OC更加的智能化,很多人在用UITableViewController或UICollectionViewController的时候,都忘记指定样式或者布局,导致达不到想要的效果,或者程序崩溃,相比之下,Swift更加的智能,在创建这个控制器的时候,必须指定样式或者布局
Swift的简单用法到此结束,谢谢观看。