IOS8 开发之Swift - 自学之路(第三天)

字符串类型

countElements()计算字符串长度。

比较字符串相等, ==。

字符串判空。isEmpty

字符串转换成int。toInt()

可选类型

int?

!

nil

数组类型

shoppingList.insert("abc",atIndex:0)

shoppingList.append("abc","bac")

shoppingList.removeAtIndex(0) //返回删除值

shoppingList.count//数组长度

for item in shoppingList {

    println(item)

}

for(index, value) in enumerate(shoppingList) {

    ....

}

字典类型

airports["LHR"] = "London"

airports.removeValueForKey()

airports.count

for(airportCode, airportName) in airports{

}

for(airportCode in airports.keys {

}

for(airportName in airports.values {

}

let airportCodes  = Array(airports.keys)

类与结构体

类与结构体有很多共性:

  1. 定义属性存储数据
  2. 定义方法执行功能处理
  3. 定义下表,通过下表访问他们的值
  4. 初始化他们的状态
  5. 通过扩展,扩展其功能
  6. 遵守协议,协议提供一种特定的标准功能

类比结构体多出的功能:

  1. 能够继承另外一个类
  2. 能够核对运行期对象的类型
  3. 析构对象释放资源
  4. 引用技术允许一个类实力有多个引用

属性

属性的主要作用是存储数据

延迟存储属性是初始化时候不分配值,直到第一次使用它。属性@lazy声明。

场景: 大属性创建、少用

属性观察者

为了监听属性的变化,swift通过了属性观察者。

willSet观察者是在存储之前调用。

didSet新值存储后调用。

静态属性

静态属性在结构体中使用static定义,类中使用class定义。

struct  SomeStructure {

     static var storedTypeProperty = "Some values".

     static var computedTypeProperty:Int{

     }

}

class SomeClass{

    class var computedTypeProperty:Int {

    }

}

方法

Swift中的方法是与特定类型(类和结构体)相关的函数。

实例方法

隶属于某个特定类型(类或结构体)实例函数。

使用self

self代表当前对象。

下标

下标可以在类和结构体中定义。

定义下标

subscript(intdex: int) -> Int {

    get {

    }

    set(new Value) {

    }

}

只读下标

只用get

继承

swift中的类能够继承其他类的属性、方法等

定义基类

定义子类

重写

方法重写:override

属性重写:

构造器

init

析构器

deinit

扩展

在现有类和结构体的基础上,扩展新的功能。

extension SomeType{

}

extension SomeType:SomeProtocol, AnotherProtocol {

}

计算属性

extension Double {

   var km: Double{return self*1_000.0}

   var m: Double{return self}

   var cm:Double {return self/100.0}

   var mm:Double {return self/1_000.0}

   var ft:Double{return self/3.20004}

}

let oneInch = 25.4mm

使用构造器

方法扩展

extension Int {

    func message() -> String{

        var message = "";

        switch self {

        case 0:

                  message ="成功";

        case -1:

                  message ="用户登录失败";

        default:

                  message ="未知错误";

        }

        return message;

    }

}

3.message()

0.message()

(-1).message()

协议

协议是为方法、属性等定义一套规范,没有具体的实现

协议能够被类、结构体等具体实现(或遵守)。

属性

1.set和get访问器

protocol SomeProtocol{

    var mustBeSettable: Int{get set}

    var doesNotNeedToBeSettable:Int{get set}

}

2.jingtai静态属性

protocol AnotherProtocol {

    class var someTypeProperty:Int{get set}

}

3只读

protocol FullyNamed {

    var fullName:String{get}

}

方法

1.定义方法

protocol RandomNumberGenerator {

    func random() -> Double

}

2.定义静态方法

protocol RandomNumberGenerator {

   class  func random() -> Double

}

把协议作为类型使用

你可能感兴趣的:(ios,swift)