加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:39:00 所属栏目:百科 来源:网络整理
导读:20161104 总结一下swift的一些特性: 1.不可变性 let关键字声明的都是不可变的,不像OC中对象的值可以通过引用对象被改变。 要理解值类型的概念,值类型是稳定的。 2. 类型安全 不可隐式转换 3.optional的使用,判断对象是否为nil 4.函数式API map filter 方

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错误")

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读