Swift4 편리 빌더(convenience)

1712 단어
일단 인터넷에 있는 예를 하나 붙여볼게요.
import UIKit  
  
extension UIButton{  
      
    //swit      class     ,   oc +       
    class func createButton(imageName:String,bgImageName:String)->UIButton{  
          
        let btn=UIButton()  
        btn.setImage(UIImage(named:imageName), for: .normal)  
        btn.sizeToFit()  
      
        return btn  
    }  
      
    /*  
     convenience:  ,  convenience                 
                                。  
              :  
     1、            extension    
     2、    init      convenience   
     3、               self.init()  
      
     */  
      
    convenience init(imageName:String,bgImageName:String){  
          
        self.init()  
          
        setImage(UIImage(named:imageName), for: .normal)  
        setBackgroundImage(UIImage(named:bgImageName), for: .normal)  
        sizeToFit()  
    }  
} 

여기에 몇 가지 내용을 보충하고 싶습니다.
편리 구조기는 extension뿐만 아니라 클래스에도 사용할 수 있다.
class InitViewController: UIViewController {

    convenience init(_ name: String) {
        //         self.init()
        self.init()
        
        self.username = name;
    }
    
    //        ,            ,    :     init  ,           init     ,      ,         init          。
    var username : String!
    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.purple
        
        if let username = self.username {
            print(username)
        }
    }
}

사용할 때
//                   
let ctrl = InitViewController()
//let ctrl = InitViewController("Coder")
self.present(ctrl, animated: true, completion: nil);

좋은 웹페이지 즐겨찾기