My Octopress Blog

A blogging framework for hackers.

Swift Method

swift method分为instance methodtype method

instance method是属于实例的函数,type mothod则是属于type的函数

Swift Optional Chaining

optinal chainging是一个查询和调用optional的property, method, subscript的过程。如果其中的optional没有nil,那么表达式求值成功。否则,失败。失败后返回nil。所以整个表达式返回值始终是optional类型。

Swift Extension

extensions可以给已有的type增加功能,而且不必访问源代码(retroactive modeling)

extensions可以

  • 增加computed propertycomputed static property
  • 定义instance methodstype methods
  • 提供新的initializers
  • 定义subscripts
  • 定义和使用新的nested types
  • 为一个type实现一个protocol

extension不可以

  • extension可以增加新的funtionality,但是不能覆盖以有的functionality
  • extension不能增加stored properties,或者给存在的property增加property observers
  • extension不能增加新的designated initializer

Swift中optional

关于optional,最需要说的是为什么需要optional,比如说在objctive-c中就没有,也是可以表示一个不存在的对象的。只需要用NULL就可以了。但是如何表示一个不存在的value类型的变量呢?比如一个不存在的struture?objective-c就没有太好的办法了,一般来说是用一个特殊值NSNotFound来表示。不过swift可以让一切不存在的变量都为nil,这就是optional的目的

Swift Initialization

swift的初始化

这里不是要权威的解释initilization,而是想总结一些swift initilizer的特点