Stanford CS193p iOS开发课程笔记(三)

2015-12-04  本文已影响189人  Dominic1992

2015年12月4日,完成了第四课"More Swift and Foundation Frameworks"的学习

这一课无代码演示,主要讲解了一些Swift的基本语法知识,好在之前已经打下了基础,没有在这一课的学习中较为顺利,但关于初始化器和懒加载以及will set,did set.方面的知识还要继续进行补充

本课的主要知识点如下

2.png
enum Optional<T> {   ///T为关联值得类型
        case None
        case Some(T)
}
let x: String? = nil  相当于  let x = Optional<String>.None

let x: String? = "hello"  相当于  let x = Optional<String>.Some("hello")
switch x {
       case some(let value):y = value
       case None: //raise an exception
}//在None的情况下就会抛出异常
for (ket , value) in xxx {
      print("\(key) = \(value)")
}

我们会在哪里用到它?

var destinationViewController : AnyObject
var toolbarItems: [AnyObject]

func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject)
func addConstraints(constranits: [AnyObject])
func appendDigit(sender: AnyObject)

class func buttonWithType(buttonType: UIButton) -> AnyObject

如何进行转换?

利用as强制转换

var destinationViewController : AnyObject
let calcVC = destinationViewController as CalculatorViewController

利用as?在转换前进行判断

if let calcVC = destinationViewController as? CalculatorViewController {...} 

[AnyObject]数组的转换

var toolbarItems: [AnyObject] 
for item in toolbarItems {
      if let toolbarItems = item as? UIBarButtonItem {
      }
}
...or...
for toolbarItem in toolbarItems as [UIBarButtonItem] {}//直接将整个[AnyObject]数组转换成了[UIBarButtonItem]
上一篇 下一篇

猜你喜欢

热点阅读