iOS 开发学习成长之路iOS进阶高级iOS Developer

记 OC 转swift3.0 邂逅感

2017-02-28  本文已影响652人  CZF峰峰

起因

虽然 swift 出到现在已经有很长一段时间了,还记得最初发布的时候那时候正在流行Flappy Bird这款游戏,我也有下载去玩,那时候记得新语言刚刚放出没多久就有大神用新语言翻了一遍这个游戏,可以看出有代码基础的前提下来开发是完全没啥问题的,那时候只是觉得有趣,但是知道想普及没个几年时间是不行的,那时候也有很多这种言论,而且语法一直在发生改变,每次改变语法都会让之前的代码需要重新修改,跟 OC 这种一沉不变的语言果然是不一样的,所以那时候我也没想去学习,在swift 出3.0后我也只是微微表示下关注而已,并没有想学习的意愿,感觉后面还是 会有4.0,5.0等等..只不过在项目需要用到 chart 这个第三方图表框架,由于这个框架是从安卓那边几乎复制过来, 用 swift 语言编译,API 的相似程度官方都已经说有90多,所以官方连文档也懒得重新写,直接说看安卓的文档就行,我也是因为这样才慢慢去学习swift, 但因为只是改改源代码,所以就么有系统的学习,只是大概了解,所以对于这个语言也是一知半解,等到项目完成后有时间才重新认识下这门新语言.

OC 转 swift 会不会很难?

老实说吧,如果你什么语言都不会只会 OC 的话,直接看 swift 是有些晕的,别说你会点 C 基础,没什么用,毕竟只是基础,估计都忘光了.
学习这个语言有两个方向,我自己总结是这样的.

举个栗子说下吧

以 iOS 为前提,swift 对于 oc 的区别有什么,我大概说下吧,肯定是不全面,但是也是我自己觉得比较重要的.

属性 懒加载 define oc 桥接 OC
swift swift 的方法

大致意思是这样的,test 是方法名称,名称后面的括号是入参属性,由于没有入参属性所以就只有括号,->后面代表的就是返回值类型,如果你创建一个没有参数没有返回值的,可以直接写 func test(){}这样就可以了,当然括号还是必须的,返回值没有可以省略,可以有多个参数,多个返回值,只要在返回值后面加个逗号就可以继续写,当然需要有个括号包裹起来才可以,如图

多返回值

基本上 swift 都是点语法,熟悉后会发现这类语法很常见.

对block 的声明 调用这个 block,但是不执行,等代码块的时候再执行 在其他页面执行,跟 oc 一样在代码块里面执行,少了^号 在方法中参数里面的 block 调用这个方法
// 旋转动画
let anim = CABasicAnimation(keyPath: "transform.rotation")
        anim.toValue = M_PI*2//旋转一圈
        anim.duration = 0.8//旋转时间
        anim.repeatCount = MAXFLOAT//旋转圈数
        anim.isRemovedOnCompletion = true
        refreshBtn.imageView?.layer.add(anim, forKey: nil)//添加动画
        //GDC 延迟执行
        DispatchQueue.global().asyncAfter(deadline: .now()+2.0) {
            OperationQueue.main.addOperation {
                //停止旋转,记得要在主线程执行
                self.refreshBtn.imageView?.layer.removeAllAnimations()
            }
        }
上一篇 下一篇

猜你喜欢

热点阅读