Swift 快速入门

干开发这行也有三年多了,做过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的简单用法到此结束,谢谢观看。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ****1.常量和变量**** let定义常量,一经赋值不允许再修改 var 定义变量,赋值之后仍然可以修改* 定...
    金歌漫舞阅读 4,925评论 0 0
  • 一、 常量&变量 简单体验 阶段性小结var 定义变量,设置之后可以修改let 定义常量,设置之后不可以修改语句末...
    _浅墨_阅读 4,603评论 0 0
  • ****函数****目标 掌握函数的定义格式 掌握外部参数的用处 掌握无返回类型的三种函数定义方式 ****代码实...
    金歌漫舞阅读 2,839评论 0 0
  • 在 Swift 中绝大多数的情况下,推荐使用 String 类型 String 是一个结构体,性能更高 Strin...
    Kakarrot阅读 864评论 0 0
  • if Swift 中没有 C 语言中的非零即真概念在逻辑判断时必须显示地指明具体的判断条件 true / fals...
    Kakarrot阅读 2,312评论 0 0