Swift Two Day

作者: 抖腿宅还爱古风 | 来源:发表于2016-06-14 09:09 被阅读0次

     swift的函数跟闭包也分为 (无参无返回值,无参有返回值,有参无返回值,有参有返回值)四种情况。可以上代码来看一下。

    func demo1 ( ) { print ("没有参数没有返回值") } 

    func demo2 ( ) ->String { print("没有参数有返回值")  return "xixi"}

    func demo3 (str1:String,str2:String )->( ) { print("有参数没有返回值") }

    func demo4 (str1:String,str2:String)->String { print("有参数有返回值") return "\(str1)\(str2)"}

    然后再 viewDidLoad中分别调用就行了

    /* 闭包 */ 闭包相当于是 C里面的 block,封装了一段有特定功能的代码块 。闭包的书写格式为:      { (输入参数列表)->返回值类型    in   闭包里面执行的代码块 }

    /* 懒加载 */ 懒加载的书写格式是特定的:

    lazy var 变量名:变量类型 = {  let   定义一个同样类型的常量并赋值     return xx }( )

    /*继承?*/ swift里面 set方法的写法:

    var 变量名:类型? { didSet{ } }

    只要是自定义的函数就必须机上 func,系统函数不用加,且字样是红色的                                只要是 override修饰的函数,代表这个函数继承自父类                                                                 必选类型属性在重写 init方法时,必须在 super.init( )之前进行赋值。如果重载了初始化方法,并且没有提供系统默认的初始化方法,外界是无法访问到系统默认的初始化方法。        类方法有两种写法: class / static 。 前者能够被子类重载,后者不能。因为后者修饰的是在静态区,只有一份资源能够使用。

    /* KVC */  在字典转 model中,基本数据类型不能为可选类型,会导致找不到 key而无法赋值。可以通过给一个默认值的方法解决。  KVC 是通过字符串间接访问对象属性的一种方式

    创建的 model类,并且调用的方法

    通过上图有几个注意点: 1. 字典的创建要明确类型  2. 基本数据类型不为可选类型 3.继承父类的方法

    /* 单例 */ 单例的好处在于很大程度上减少了内存的使用,避免了频繁的 allocinit? 单例在 swift中有两种创建方法:

    1.  static let shareInstance:Singleton = { let singleton = Singleton( )     return  singleton }( )  其中Singleton是继承自 NSObject的一个类

    2. static let singleton = Singleton( )                                                                                                   class func shareInstance( )->Singleton {  return singleton }

    /* 协议 */ 

    首先创建一个类 这里叫 Women 继承 NSObject

    然后写一个协议    protocol womenDeleGate{  func makeMoney( ) }                                 protocol 标识符如果前面没有@objc,表示协议里面的所有方法都必须实现。如果协议里面有一些是选择实现的方法,那么在这些方法前面加上 optial,并且在 protocol前面加上@objc修饰符

     class Women:NSObject{ var delegate:womenDelegate? }  // 声明代理

    在 controller中遵守协议

    遵守协议

    在 viewdidLoad( )中

    创建一个对象  let women = Women( )                                                                                             设置代理          women.delegate = self                                                                                                控制代理执行协议  women.delegate?.makeMoney( )                                                                      在  viewdidLoad外实现协议方法    func  makeMoney( ) { print ("实现了协议方法") }                             

                                          

    相关文章

      网友评论

        本文标题:Swift Two Day

        本文链接:https://www.haomeiwen.com/subject/hewydttx.html