swift --2

来源:互联网 发布:加盟农村淘宝要多少钱 编辑:程序博客网 时间:2024/06/11 03:08

在swift 中 ? 可选的,可以不赋初始值 

    ! 必须赋初始值


static 可修饰类   但不可以重写

class 可修饰 可重写

class Person{

  class func test2(){

       print("二师弟正在吃")

    }

class Student:Person{

 //重写父类方法要有 override

    override class func test2(){

        print("大师兄,二师兄");

    }


// () 相当于alloc init


//协议  protocol关键字 这样写默认是协议必须实现

protocol  MyProtocol{

    func sayHello()

}


//这种写法 加上@objc 这种写法修饰的协议里面的方法加上optional就可以变成可选择性实现的协议方法 可选择实现的

@objc protocol YourPrptocol{

   optional func sayHi()

}


    //重写init方法并且写几种init方法,就有几种初始化方式

    init(name : String,age : Int){

        self.name = name

        self.age = age

    }

    init(name :String){

        self.name = name

    }

    init(){

    }

}



   class Teacher : MyProtocol{

        func sayHello(){

            print("hello")

        }

  //如果我们实现了可选协议方法,那么必须要在func前加上@objc或者让这类继承NSObject,这样就不会报黄色警报

        func sayHi(){

            print("i like i like")

        }

    }

// extension  给类拓展协议 ,拓展方法


//cell 注册

self tableView registerClass MyTableViewCell classForCoder(),forCellReuseIdentifier:"cell_id"



// 重用

let cell :MyTableViewCell = tableView.dequeReusableCellWithIdentifier("cell_id",forIndexPath:indexPath)as!MyTableViewCell

 

//属性传值

let VC : LoginViewController = LoginViewController()

 self.showViewController(VC, sender: nil);



//pop 

 self.navigationController?.popToRootViewControllerAnimated(true);

  


//闭包传值 闭包就是  block 
//在最上面写
typealias block = (str : String)->Void

var myBlock : block!


   self.myBlock(str:"哈哈哈")


 var myBlock : block!


 self.myBlock(str:"哈哈哈")


//  block 传带参要带in

   VC.myBlock = {

a in

  print(a)

 }












 



0 0