前言
学了一周的iOS for swift,这周放多了一天的假,于是在我看完10节课后有足够的时间进行总结和反思。
反思
Swift
swift 跟这课程走用了一周,感觉是一个很好用的语言,而且对于我这种写过java,js转过来的程序猿来说,只要熟悉一些语法就能够很快的上手了,对于入门而言,swift在ios学习的初期基本没有任何学习上障碍。
不过,Stanford的课程用的是swift 1.0版本,在一些小细节上跟1.2有点不同,需要特别注意一下
- 定义了let,如果没在定义的时候进行初始化,就要在init的时候对所有可能的情况都要初始化
class Person {
let name
init(name: String){
if !name.isEmpty {
self.name = name
} else {
// 常量的初始化一定要在所有分支上都处理了,不然就会编译错误
//Return from initializer without initializing all stored properties
self.name = ""
}
}
}
对于目前我的理解而言,大部分情况还是var
比较方便,我不怎么理解Stanford课程提供的代码中,对let
的值进行赋值修改。
- 熟悉swift在iOS的各种api这个只能靠多用来熟悉了
总得来说,swift
对刚接触iOS的初学者而言非常友好。
View
iOS上的view真的让我打开眼界,像我这种之前写android的,真不知道原来IDE还能够这么强大,在xcode上,你可以非常便捷连接可视化的view和代码,直接图形化操作,非常直观方便。
而且还能实时预览自定义view,用@IBInspectable
标记代码的变量,那个标记的变量能在可视化界面直接修改,这类操作,是我这个android程序员没法想象的。
Controller
我以前一直很好奇iOS的界面跳转时怎么进行操作的
现在知道,ios可以直接在storyboard处理各种跳转,直接在界面拖就好了
- View Controller
UITabBarController
UISplitViewController
UINavigationController
UITableViewController
熟悉以上几个基本上可以构建一个比较简单的app
其中UITableViewController
非常强大,也非常复杂,需要下功夫认真学习
- Segua
prepareForSegue
以我目前的认知,两个View Controller
是通过一个名为segua的东西进行交互。
AutoLayout
我以前一直很好奇iOS是怎么做不同尺寸的屏幕的适配,学了一节课,一个大致的印象,就是全手工配置。
相比,android的懒人屏幕适配,ios在不同尺寸的屏幕上的适配就需要下更多的功夫,还好xcode非常给力,这个适配除了要用点心以外,就没什么障碍了。
对于AutoLayout的理解和使用,还是要多多的上手练习,只看书的话对autolayout的使用帮助不大。
多练习,这是我现在对autolayout最大的感受了。
Multithreading
- dispatch_async()
- dispatch_get_main_queue()
ios 的线程模型刚接触,我感觉到很不可思议,对于一些耗时操作,直接丢到 dispatch_async()
执行,有结果回来直接执行dispatch_get_main_queue()
对界面操作就完了。真的是不可思议的简单!
总结
用了一周的时间,看了Stanford 10节课,内容有些多,平时还得上班,只有晚上那几个小时,时间实在是不够,还好这周还多放了一天,不然,这周连个总结都写不了。下周的安排,个人感觉还是以消化这周学习的内容为主,不打算继续看新课了,用一周的时间,消化完这周学习的内容,就继续接下来的课。
希望这样学习一个月后,可以写一个简单的app!