Stanford cs193p 10节课总结

前言

学了一周的iOS for swift,这周放多了一天的假,于是在我看完10节课后有足够的时间进行总结和反思。

反思

Swift

swift 跟这课程走用了一周,感觉是一个很好用的语言,而且对于我这种写过java,js转过来的程序猿来说,只要熟悉一些语法就能够很快的上手了,对于入门而言,swift在ios学习的初期基本没有任何学习上障碍。

不过,Stanford的课程用的是swift 1.0版本,在一些小细节上跟1.2有点不同,需要特别注意一下

  • 定义了let,如果没在定义的时候进行初始化,就要在init的时候对所有可能的情况都要初始化
1
2
3
4
5
6
7
8
9
10
11
12
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!