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错误") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |