swift学习总结(更新中...)

前端之家收集整理的这篇文章主要介绍了swift学习总结(更新中...)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

20161104

总结一下swift的一些特性:

1.不可变性

let关键字声明的都是不可变的,不像OC中对象的值可以通过引用对象被改变。

要理解值类型的概念,值类型是稳定的。

2. 类型安全

不可隐式转换

3.optional的使用,判断对象是否为nil

4.函数式API

map filter

方法函数的区别:

方法是跟类相关的,依赖于类,或者一些类中别的参数影响。

函数输出结果只跟它的参数有关。

5.返回类型有可选,元组,或者返回一个函数

可以嵌套函数

上面的总结参考Objc中国swift系列文章 https://objccn.io/issues/


上个月给自己定了一个目标,用swift完成一个当前项目里的页面

之前swift刚出来的时候看过一点,现在swift3.0了,相当于重新开始学。先看了一遍3.0翻译的文档。

https://www.cnswift.org/边看可以自己新建一个playground写代码测试。

然后就开始写demo,遇到不会的再回头来查找文档。

遇到的问题:

1.数组:

var testarr4:[Int]=[1,2,3,4,5];

var testarr5=testarr4;

address(o: testarr4)

address(o: testarr5) //这两个打印数据是一样的

testarr5[2]=0;

//testarr4的地址不变,testarr5的地址改变了

print("testarr4:\(testarr4)\n testarr5:\(testarr5) \n ");

//执行结果:

/*

testarr4:[1,2,3,4,5]

testarr5:[1,0)"> */

这一点跟OC是不同的,OC里指针指向的是一块内存。swift里,当数组改变的时候会自动的拷贝一份。

而且也不需要用NSMutableArray来限制数组可变,let和var区别就可以。

2.有些语法不知道怎么写

open func copyItem(atPath srcPath: String,toPath dstPath: String) throws

刚开始不知道throws什么意思,调用fileManager的 copyItem方法的时候一直报错,要加do try catch.在网上找了挺久...

do {

try fileManager.copyItem(atPath: filePath!,toPath: dbPath)

}catch {

print("copy item错误")

}

猜你在找的Swift相关文章